现在要做一个携带两个图标的资源文件 并调用的例子
首先建新工程 保存 注意这次我们不删除 {$R *res}
复制两个 ico 文件到工程目录 譬如文件是 IcoFile_icoIcoFile_ico
建立文本文件输入
ico ICON IcoFile_ico
ico ICON IcoFile_ico
然后保存为 MyResrc 并 Add 到工程中 如图
此时的工程文件会自动插入 {$R MyResres MyResrc}
添加四个按钮 实现代码如下
unitUnit;
interface
uses
WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms
DialogsStdCtrls;
type
TForm=class(TForm)
Button:TButton;
Button:TButton;
Button:TButton;
Button:TButton;
procedureButtonClick(Sender:TObject);
procedureButtonClick(Sender:TObject);
procedureButtonClick(Sender:TObject);
procedureButtonClick(Sender:TObject);
end;
var
Form:TForm;
implementation
{$R*dfm}
//使用资源中的第一个自定义图标
procedureTFormButtonClick(Sender:TObject);
begin
ApplicationIconHandle:=LoadIcon(HInstanceico);
{
HInstance当前程序实例的句柄调用资源文件一定要用到它;
ico是资源文件的标识符;
LoadIcon是个API函数专门用于调用资源中的ico文件它返回的是指定ico文件的句柄
}
end;
//使用资源中的第二个自定义图标
procedureTFormButtonClick(Sender:TObject);
begin
ApplicationIconHandle:=LoadIcon(HInstanceico);
end;
//使用资源中默认的程序图标
procedureTFormButtonClick(Sender:TObject);
begin
ApplicationIconHandle:=LoadIcon(HInstanceMainIcon);
end;
//不使用图标(会显示Windows系统的默认图标)
procedureTFormButtonClick(Sender:TObject);
begin
ApplicationIcon:=nil;
end;
end
//效果图
注释
此时的 MyResrc 被编译成了 MyResres
此时的 IcoFile_icoIcoFile_ico 文件被编译进 MyResres
此时的 MyResres 文件也被编译到 Projectexe 中了