製作RES資源檔

來源:互聯網
上載者:User
[轉貼]  
  談資源檔在delphi中的應用  
   
  資源檔一般為副檔名為res的檔案。在vc中資源檔用得非常普遍,  
  但delphi在其線上說明中對資源檔沒作什麼介紹,其實利用其內建的  
  資源編譯工具brcc32.exe(一般位於/delphi/bin目錄下),我們完全可  
  以做出跟vc一樣效果的檔案來。/資源檔最大的好處是能將一些在必要時才調用的檔案跟可執行檔一  
  起編譯,產生一個檔案.這樣做最大的好處就是使外部檔案免遭破壞.例如  
  在一條程式中你要臨時調用一幅圖片,一般作法是把圖片放在某一路徑下  
  ,但如果使用者路徑誤刪你的圖片檔案,則可能  
  使程式找不到相應檔案而出錯崩潰。另外,如果你想自己的程式介面美觀,  
  想用一些自訂游標,也要用到資源檔。  
  資源檔的使用步驟為:  
  1.編寫rc指令碼文本  
  用記事本或其它文字編輯器編寫一個副檔名為rc的檔案。例如:  
  mycur   cursor   move.cur   //加入游標  
  mypic   bitmap   water.bmp   //加入位元影像  
  mywav   wave   happy.wav   //加入聲音  
  myavi   avi   epoen.avi   //加入視頻  
  myico   icon   cjt.ico   //加入表徵圖  
  格式分別為在資源檔中的名稱->類型->實際檔案名稱,例如上面  
  第一行   定義一個名為mycur的游標,實際名稱為加入游標move.cur.  
  2.將rc檔案編譯成res資源檔  
  將指令檔和實際檔案拷到brcc32.exe所在目錄,執行dos命令。  
  格式為:brcc32   指令檔(斷行符號),例如有一名為myfirst.rc的指令檔,  
  則執行   brcc32   myfirst.rc(斷行符號)即可。如果你是懶人,也可建立一批  
  處理檔案,內容   只有一行:brcc32   mufist.rc.(因為delphi安裝後一般會  
  在自動批次檔中指明搜尋路徑的。)如果編譯成功,則會產生一個結尾  
  為res的檔案,這個   檔案就是我們需要的資源檔。  
  3.在delphi單元中加入資源檔  
  將產生的res資源檔拷貝到你所編程式的路徑下,在單元檔案  
  {$r   *dfm}後加上一句{$r   mufirst.res},則將res檔案加入去,編譯後資    
  源檔案即已包含在可執行檔中了。若你有多個資源檔,也按上法依次  
  加入。  
  4.在delphi程式中調用資源檔  
  資源檔在delphi中的關鍵字為hinstance.下面給出具體用法  
  <1>游標的調用  
  首先在程式中定義一個值大於0的常量,因為delphi本身用0-負  
  16來索引   預設的游標,所以我們制定的游標應從表面上1開始索引。然後  
  在視窗的oncreat事件中添加以下代碼:  
  screen.cursor[35]:load   cursor   (hinstance,mycur);  
  其中35為大於1的常量,mycur為游標在資源檔中的名字。如  
  果希望在   其他控制項上使用定製游標,例如panel控制項,只需在程式的適當  
  處加入以下代碼:  
  panel1.cursor:=35;  
  <2>位元影像的調用  
  建立一項工程,添加一timage控制項,在需要顯示的地方寫以下代碼:  
  var   mymap:hbitmap;  
  begin    
  hmymap:=loadbitmap(hinstance,mypic);  
  image1.picture.bitmap.handle:=mymap;  
  end;  
  其中"mypic"為位元影像資源檔中的名稱。  
  〈3〉avi檔案的調用  
  建立一工程,添加一animate控制項,在需要的地方加入:  
  animater1.resname:=myavi;  
  animater1.active:=true;  
  其中myavi為視頻檔案在資源檔中的名稱。  
  〈4〉調用wav檔案  
  在uses中加入mmsystm單元,以便在程式中播放wav檔案。播放時playsound  
  (pchar(mywav),hinstance,sndsync   or   snd_resource);其中mywav為聲音  
  檔案在資源中的名稱。  
  〈5〉加入游標  
  加入游標比較容易,只要將res檔案加入單元檔案中即可。但需注意,名稱  
  最好取"w"."ww"等,使第一個字母盡量靠後,以免與主程式的表徵圖順序顛倒。  
  補充:1.資源類型除上述類型外,還可以字型檔,字串檔案等。  
  2.資源檔不但可以在標準圖形介面下使用還可在控制台下使用。  
  下面我們來實驗一下:  
  建立一工程,將唯一的一個form刪除,然後修改工程檔案。增加一句  
  {$apptype   console},在uses子句中加入mmsystem,並將其它引用單元  
  刪掉。將begin和end之間語句刪掉。至此,我們就可和turbo   pascal  
  下編程式一樣,且還可以調用windows的api和資源。將資源檔----  
  {$r   myfist.res}加入。在begin和end之間寫下:  
  writeln(示範程式,按任意鍵開始!);  
  readln;  
  playsound(pchar(mywav),hinstance,snd_sync   or   snd_resource);  
  writeln(示範結束!);  
  運行程式,將彈出一個標準dos視窗,按任意鍵播放音效檔。是不是很cool呢!  
  我曾下載過一個播放器,在其安裝目錄下我發現有一"dos程式",用滑鼠雙擊它  
  便彈出一個dos視窗,顯示dos時代特有的畫圖,並有背景音樂!可能就是用這個  
  方法做的。  
  3.delphi本身內建了一個叫image   editor的工具,同樣可以編輯資源文  
  本,但和本文的方法比較,可得出下表:  
   
  **************************************  
  image   editor   brcc32  
   
  bmp   只支援16位色   任意色  
   
  游標   黑白兩色   任意色  
   
  ico   只支援16位色   任意色  
   
  avi   不支援   支援  
   
  wav   不支援   支援  
   
  字型    
  字串   不支援   支援  
  其他    
  **************************************** 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.