通常在Delphi的应用程序中我们会调用到很多的资源例如图片动画(AVI)声音甚至于别的执行文件当然把这些资源分布到不同的目录不失为一个好办法但是有没有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢?
我们可以自己做一个RC文件例如 samplercRC文件其实就是一个资源文件的描述文本通过记事本程序创建就行了然后可以输入一些我们要定义的资源例如
MEN BITMAP c:\bitmap\menbitmap
ARJ EXEFILE c:\arjexe
MOV AVI c:\movavi
然后用BRCC把这个RC文件编译成sampleres(真正的资源文件)
在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面
{$R sampleres}
这样我们就可以在这个单一的执行文件中调用资源了举例如下
EXEFILE
procedure ExtractRes(ResType ResName ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStreamCreate(Hinstance Resname Pchar(ResType));
ResSavetoFile(ResNewName);
ResFree;
end;
AVI
procedure LoadAVI;
begin
{Avi是一个TAnimate类}
AviResName:=AVI;
AviActive:=True;
end;