建立一個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.v;
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;
新聞熱點
疑難解答