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