uses ShellAPI;
Procedure TForm1.Button1Click(Sender: TObject);
Var // 定义变量
fn: string;
P: Pchar;
i,j: integer;
begin
If OpenDialog1.Execute then // 打开对话框
begin
fn := OpenDialog1.FileName;// 取得目标文件名
P := PChar(fn); // 转换为Pchar型
j := -1;
Count := ExtractIcon(HInstance,P,j); // 得到目标文件中图标总数
ShowMessage(‘ 该文件所含图标总数为:’+IntToStr(Count));
if Count>0 then // 如果含有图标
begin
SetLength(Icons,Count); //设置动态数组Icons的长度,Icons为全局变量
for i:=0 to count-1 do
begin
Icons:=TIcon.Create;
Icons.Handle := ExtractIcon(Hinstance,P,i); // 提取索引为i的图标
end;
Index:= 0; // 确定图标索引
Image1.Picture.Icon:=Icons[Index]; // 指定Image1显示第一个图标
end;
end;
end;