資源文件(*res)通過編譯指令 $R 關聯 譬如工程文件 Project 中的 {$R *res} 就是關聯 Projectres 資源文件 我們直接寫作 {$R Projectres} 不會有問題(但如果工程文件改名時 你也得隨著改才行) 譬如
program Project;
uses
Forms
Unit in Unitpas {Form};
{$R Projectres}
begin
ApplicationInitialize;
ApplicationMainFormOnTaskbar := True;
ApplicationCreateForm(TForm Form);
ApplicationRun;
end
這個資源文件中至少包含著文件圖標 假如我們刪除 {$R *res} 後編譯 看前後對比圖
這時我們可以通過代碼 調用其他圖標
procedure TFormFormCreate(Sender: TObject);
begin
ApplicationIconLoadFromFile(c:tempmyico);
end;
這樣還是不好 如果運行程序的電腦沒有這個文件呢? 最好讓程序攜帶著它 這就要通過資源文件 讓我們從頭來過
新建一個 VCL Forms Application 並 Save All
並通過菜單 Project → View Souse 打開工程源文件
刪除 {$R *res}
如圖新建一個 Text 文件
文件編輯如下
MainIcon ICON ctempmyico
注意 其中的 ctempmyico 可以隨便定義 但文件必須存在 另外其中的所有大小寫無關 路徑兩邊的雙引號也可以省略
把它保存為 Projectrc 注意要保存在程序相同目錄 文件名和工程文件名相同 後綴是 rc
如圖把 Projectrc 添加到工程組
這時工程文件自動添加了一行 {$R Projectres Projectrc}
好了 編譯執行程序 如圖
注釋
*rc 文件算是資源文件(*res) 的源文件 在程序編譯過程中會編譯成同名的 res 文件
上面的例子是個特例 一般我們不能使用和工程同名的資源文件
MainIcon ICON ctempmyico 中的 ICON 說明這是一個圖標資源 MainIcon 是該資源的標識符 這個標識符應該是可以自定義的 不過在這個特例中 只能使用 MainIcon 因為程序要從同名的資源文件中查找標識為 MainIcon 的資源做圖標
From:http://tw.wingwit.com/Article/program/Delphi/201311/24699.html