Delphi中資源文件使用方法詳細(xì)講述

字號(hào):

一.編寫 RC 腳本文本
    用記事本或其它文本編輯器編寫一個(gè)擴(kuò)展名為“.rc”的文件。格式如下:
    AVI 無聲動(dòng)畫
    BITMAP 位圖文件
    CURSOR 光標(biāo)文件
    ICON 圖標(biāo)文件
    WAVE 聲音文件
    以上所列均為標(biāo)準(zhǔn)資源類型,也可以給資源自定義一個(gè)類型,如:“mytype”。不過兩者在調(diào)用方式上有些不同(在后面示例“存取資源文件中的位圖”中有詳細(xì)描述)。
    二.根據(jù) RC 腳本文件編譯成 RES 資源文件
    在命令提示符中輸入以下內(nèi)容:
    brcc32 FileName.rc //注:brcc32.exe在DelphiX\Bin目錄中
    三.在Delphi單元中加入資源文件
    將生成的 RES 資源文件復(fù)制到相應(yīng)程序所在的目錄中,在單元文件中的“{$R *DFM}”后面加上“{$R FileName.res}”,編譯后資源文件就被包含在可執(zhí)行文件中了。
    說明:如果嫌2、3兩步麻煩,可以采用更簡(jiǎn)便的做法,即:將 RC 文件直接添加到項(xiàng)目中,在編譯Delphi項(xiàng)目時(shí),會(huì)自動(dòng)編譯該資源文件。
    四.資源文件調(diào)用示例
    (1)存取資源文件中的位圖
    //RC: testBmp bitmap res\test.bmp
    Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'res\test.bmp');
    //RC: testBmp bmptype res\test.bmp
    var
    resStream: TResourceStream;
    begin
    resStream := TResourceStream.Create(HInstance, 'testBmp', 'bmptype');
    Image1.Picture.Bitmap.LoadFromStream(resStream);
    resStream.Free;
    end;
    請(qǐng)注意上面兩種調(diào)用方式的不同之處。
    (2)存取資源文件中的圖標(biāo)
    將圖標(biāo)放在資源文件中,可以實(shí)現(xiàn)動(dòng)態(tài)改變應(yīng)用程序的圖標(biāo)。
    //RC: testIcon icon res\test.ico
    Application.Icon.Handle := LoadIcon(HInstance, 'testIcon');
    (3)存取資源文件中的AVI動(dòng)畫
    //RC: testAvi avi res\test.avi
    Animate1.ResName := 'testAvi';
    Animate1.Active := True;
    (4)存取資源文件中的JPEG圖像
    為了能夠處理JPEG圖像,必須在Interface處引用JPEG單元。
    var
    jpg: TJPEGImage;
    resStream: TResourceStream;
    begin
    jpg := TJPEGImage.Create;
    resStream := TResourceStream.Create(HInstance, 'testJpg', 'jpgtype');
    jpg.LoadFromStream(resStream);
    Image1.Picture.Assign(jpg);
    jpg.Free;
    resStream.Free;
    end;
    附:Delphi編程中資源文件的應(yīng)用:初級(jí)應(yīng)用篇
    資源文件一般為擴(kuò)展名為res的文件.在VC中資源文件用得非常普遍,但Delphi在其聯(lián)機(jī)幫助中對(duì)資源文件沒作什么介紹,其實(shí)利用其自帶的資源編譯工具BRCC32.EXE(一般位于\Delphi\BIN目錄下),我們完全可以做出跟VC一樣效果的文件來。
    資源文件的好處是能將一些在必要時(shí)才調(diào)用的文件跟可執(zhí)行文件一起編譯,生成一個(gè)文件.這樣做的好處就是使外部文件免遭破壞.例如在一條程序中你要臨時(shí)調(diào)用一幅圖片,一般作法是把圖片放在某一路徑下(通常是主程序所在路徑),但如果用戶路徑誤刪你的圖片文件,則可能使程序找不到相應(yīng)文件而出錯(cuò)崩潰.另外,如果你想自己的程序界面美觀,想用一些自定義光標(biāo),也要用到資源文件。
    資源文件的使用步驟為:
    一.編寫rc腳本文本
    用記事本或其它文本編輯器編寫一個(gè)擴(kuò)展名為rc的文件。例如:
    mycur cursor move.cur //加入光標(biāo)
    mypic Bitmap Water.BMP //加入位圖
    mywav WAVE happy.wav //加入聲音
    myAVI AVI EPOEN.AVI //加入視頻
    myIco ICON CJT.ICO //加入圖標(biāo)
    格式分別為在資源文件中的名稱->類型->實(shí)際文件名稱,例如上面第一行定義一個(gè)名為mycur的光標(biāo),實(shí)際名稱為加入光標(biāo)move.cur.
    二.將rc文件編譯成res資源文件
    將腳本文件和實(shí)際文件拷到Brcc32.EXE所在目錄,執(zhí)行DOS命令。格式為:Brcc32 腳本文件(回車),例如有一名為myfirst.rc的腳本文件,則執(zhí)行 Brcc32 myfirst.rc(回車)即可。如果你是懶人,也可新建一批處理文件,內(nèi)容只有一行:Brcc32 mufist.rc.(因?yàn)镈elphi安裝后一般會(huì)在自動(dòng)批處理文件中指明搜索路徑的。)如果編譯成功,則會(huì)生成一個(gè)結(jié)尾為res的文件,這個(gè)文件就是我們需要的資源文件。
    三.在Delphi單元中加入資源文件
    將生成的res資源文件拷貝到你所編程序的路徑下,在單元文件{$R *DFM}后加上一句{$R mufirst.res},則將res文件加入去,編譯后資 源文件即已包含在可執(zhí)行文件中了。若你有多個(gè)資源文件,也按上法依次加入。