中查找“资源文件的应用”更多相关内容
中查找“资源文件的应用”更多相关内容- ·上一篇文章:delphi的面向对象之路1
 - ·下一篇文章:中间层业务逻辑(一)
 
资源文件的应用
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;
