通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢? 我们可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文本,通过“记事本”程序创建就行了。
然后可以输入一些我们要定义的资源,
例如:
MEN BITMAP c:\bitmap\men.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;
然后可以输入一些我们要定义的资源,
例如:
MEN BITMAP c:\bitmap\men.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;
解决方案 »
- 关于listview的问题
- 郁闷啊::最简单的indy收发文件的代码,可是除文本文件可以外,其他都不行
- 关于word(OLE)的预览问题
- 不知是否有人知道客户端不安装oracl客户端工具,用ado可以连接oracle服务器
- 怎樣刪除stringgrid中選中的一行?
- 哪里可以下installshield 2000 ?
- 使用TADOCommand连接Access,使用insert提示语法错误,我疯了....
- 有谁下载了通用考试系统 Jiefo WebExam
- 如何改变默认的单元名?
- 为什么我用richedit的soket.savetofiile属性存到文件中是乱码?
- 你是高手你进来!!!!!
- 我要什么函数才能取得NT关机权限
Playsound(pchar('ehe'),hInstance,snd_Resource or snd_Async)'ehe'是资源文件中指定的wave文件的名字次源文件中的格式如下
HaveaBreak WAVE "F:\work\createRes\break.wav"
HaveaBreakup WAVE "F:\work\createRes\breakup.wav"
letusgo WAVE "F:\work\createRes\letusgo.wav"
ehe WAVE "F:\work\createRes\ehe2.wav"保存成res.rc文件后使用命令行方式
brcc32 sound.rc生成sound.res文件。