用以下函数不行,返回值为0:
procedure TForm1.ListView1GetImageIndex(Sender: TObject; Item: TListItem);
Const
Mode = SHGFI_ICON or SHGFI_SYSICONINDEX;
Var
info : TSHFileInfo;
P : ^String;
begin
If Item.ImageIndex = -1 then
begin
FillChar(Info,SizeOf(TSHFileInfo),0);
P := Item.Data;
SHGetFileInfo(PChar(P^), 0, Info, SizeOf(TSHFileInfo), Mode);
Item.ImageIndex := Info.iIcon;
end;
end;
其中DATA是FTP服务器上文件的全名,如: /public_html (文件夹或文件)
SHGetFileInfo可以按文件类型取图标,如:
SHFILEINFO sfi;
HIMAGELIST hil;
ZeroMemory(&sfi,sizeof(sfi));
hil = SHGetFileInfo(".zip",
FILE_ATTRIBUTE_NORMAL,
&sfi,
sizeof(sfi),
SHGFI_USEFILEATTRIBUTES|SHGFI_ICON);
博客讨论了在获取FTP服务器上文件图标的函数使用问题,提到一个函数返回值为0无法正常工作,还介绍了DATA是FTP服务器上文件全名,同时给出了SHGetFileInfo函数按文件类型取图标的示例。
162

被折叠的 条评论
为什么被折叠?



