我用extractIcon提取文件中的图标(50分)

  • 主题发起人 主题发起人 阿魁
  • 开始时间 开始时间

阿魁

Unregistered / Unconfirmed
GUEST, unregistred user!
extractIcon在第三个参数为-1时,返回值是文件中图标的个数。

但根据delphi中extractIcon的声明,返回值是HICON,无法强制转换为integer,
那我怎么取得文件中图标的个数呢?
 
HICON 也是 LongWord ,可以用 inttostr 转换的
 
procedure TForm1.FileListBox1Click(Sender: TObject);
var
icon : TIcon;
filename : string;
i,j : integer;
listItem : TListItem;
begin
filename := fileListBox1.FileName;
icon := TIcon.Create;
i := strToInt(intToStr(extractIcon(hInstance,pchar(filename),-1))); //HERE
for j:=0 to i-1 do
begin
icon.Handle := extractIcon(hInstance,pchar(filename),j);
listItem := listView1.Items.Add;
listItem.ImageIndex := imageList1.AddIcon(icon);
inc(i);
end;
icon.Free;
end;

在标记处有错误提示:
Constant expression violates subrange bounds

何解?
 
-1 换成 $FFFFFFFF
 
后退
顶部