通常在Delphi的應用程序中,我們會調用到很多的資源,例如圖片,動畫(AVI),聲音,甚至於別的執行文件。當然,把這些資源分布到不同的目錄不失為一個好辦法,但是有沒有可能把這些資源編譯成標准的windows資源從而鏈接到一個執行文件裡面呢?
我們可以自己做一個RC文件,例如 sample.rc ,RC文件其實就是一個資源文件的描述文本,通過“記事本”程序創建就行了。然後可以輸入一些我們要定義的資源,例如:
MEN BITMAP c:itmapmen.bitmap
ARJ EXEFILE c:arj.exe
MOV AVI c:mov.avi
然後用BRCC32把這個RC文件編譯成sample.res(真正的資源文件)。
在Delphi的工程文件中使用 $R 編譯指令讓Delphi包括資源到EXE文件裡面。
{$R sample.res}
這樣我們就可以在這個單一的執行文件中調用資源了。舉例如下:
EXEFILE:
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName);
Res.Free;
end;
AVI:
procedure LoadAVI;
begin
{Avi1是一個TAnimate類}
Avi1.ResName:=AVI;
Avi1.Active:=True;
end;