程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 資源文件的應用

資源文件的應用

編輯:Delphi

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved