资源文件的应用 (转)

资源文件的应用 (转)[@more@]

建立一个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;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10794571/viewspace-974725/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10794571/viewspace-974725/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值