当前位置: 首页 > 学习 > 电脑学习 > 程序设计 > Delphi > 编程技巧 > 正文

资源文件的应用

http://www.zk168.com.cn  招考学习网 2006-4-7 10:07:35
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
建立一个RC文件,本示例程序:SwfFile.rc
RC文件其实就是一个资源文件的描述文本。然后可以输入一些我们要定义的资源,示例:
Flash SwfFile1 Thanks.SWF
然后用BRCC32把这个RC文件编译成SwfFile.RES。
BRCC32 SwfFile.rc保存为Swf.bat批处理文件。
在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。
{$R SwfFile.RES}
此时我们可以在单一的执行文件中调用资源了。示例代码如下:
//资源文件流的应用
procedure FlashResToFile(const ResName, ResType, FileName: string);
var
FlashRes: TResourceStream;
begin
FlashRes := TResourceStream.Create(HInstance, ResName, PChar(ResType));
try
FlashRes.SaveToFile(FileName); //将资源保存为文件,即还原文件
finally
FlashRes.Free;
end;
end;
//执行资源文件中的Flash播放文件
procedure TFlashResFrm.PlayResFileBtnClick(Sender: TObject);
begin
if FileExists(ExtractFilePath(ParamStr(0)) + 'Thanks.SWF') then
DeleteFile(ExtractFilePath(ParamStr(0)) + 'Thanks.SWF');
FlashResToFile('FLASH', 'SwfFile1', 'Thanks.SWF');
ShockwaveFlash1.Movie := ExtractFilePath(ParamStr(0)) + 'Thanks.SWF';
ShockwaveFlash1.Play;
end;

通常在Delphi的应用程序中会调用到很多的资源,例如图片,动画(AVI),声音,甚至于别的执行文件。
ResICO ICON "example.ico" //加入图标
ResCursor Cursor "example.cur" //加入光标
ResBitmap Bitmap "example.bmp" //加入位图
ResAVI AVI "example.avi" //加入视频
ResWav WAVE "example.wav" //加入视频

{$R ResDefine.RES}

procedure TResourceForm.FormCreate(Sender: TObject);
begin
Application.Icon.Handle := LoadIcon(hInstance,'ResICO');
Application.Title := '资源文件使用集合';
ResourceForm.Caption := '资源文件使用集合--[Delphi编程驿站:http://yckxzjj.vip.sina.com]';
end;

procedure TResourceForm.Image1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
//把MMSystem加入到Interface的uses单元中
PlaySound('ResWav',HInstance,Snd_ASync or Snd_Memory or snd_Resource) ;
end;

procedure TResourceForm.AVIPlayBtnClick(Sender: TObject);
begin
Animate1.ResName :='ResAVI' ; //资源标识
Animate1.Active :=True ;
end;

procedure TResourceForm.BmpShowBtnClick(Sender: TObject);
begin
//Image1.Picture.Bitmap.Handle :=LoadBitmap(hInstance,'ResBitmap');
Image1.Picture.Bitmap.LoadFromResourceName(hInstance,'ResBitmap');
Image1.Visible := True;
end;

procedure TResourceForm.CursorUpdateBtnClick(Sender: TObject);
begin
Screen.Cursors[1] :=LoadCursor(hInstance,'ResCursor');
//Image1.Cursor := 1;
ResourceForm.Cursor :=1;
end;

-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
最新入库:
 
·实质、过程及意义——阿多尔诺“否定的辩证法”探微
·从Ontology的译名之争看哲学术语的翻译原则
·论马克思主义哲学经典的解释——解释学方法及其在马克
·中国哲学当前的核心与周边问题
·和合学与21世纪文化价值和科技
·中国文化的和合精神与21世纪
·宗教之间理当相互宽容
·上半个世纪的自由主义
·殷周至春秋时期神人关系之演进
·大学之道:构建以“三纲八目”为核心的道德修养体系
相关内容:
 
网友点评:
 
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
友情提醒:
 1.库中的资料大都来自互联网、网友上传、各类书籍,在录入的过程中难免会出现错误,恳请网
 友来信指正!
 2.如果网友在本库中未能找到所需要的材料,请登陆到我们的论坛《招考学习网》版块!
 3.考友想加入招考学习网的编辑部,请发信到XueXiWang#Gmail.com(#改为@)附带个人简历
 4.如需转载请注明出处及作者,谢谢合作!
 5.如果您有更好的建议或意见请EMAIL:XueXiWang#Gmail.com (#改为@)
 6.凡标题中有注有“[NO]”字样均不含答案且答案整理中.
 7.如本库中转载文章涉及版权等问题,请相关网站或作者在两周内发邮件通知(EMAIL:  XueXiWang#Gmail.com (#改为@))我们,我们接到通知后立即删除该文章及链接!
你问我答 更多>>