
01.02.2011, 04:12
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Есть.
Делается это через получение ссылки на системный ImageList и получения индекса через специальный вызов API по имени файла.
Код:
// Load image lists for files icons
ilSystemSmall.Handle := SHGetFileInfo('', 0, SHFI , SizeOf(SHFI),
SHGFI_SMALLICON Or SHGFI_SYSICONINDEX);
ilSystemLarge.Handle := SHGetFileInfo('', 0, SHFI, SizeOf(SHFI),
SHGFI_LARGEICON Or SHGFI_SYSICONINDEX);
и
Код:
function GetSystemImageIndex(AFileName : String) : Integer;
var
SHFI : TSHFileInfo;
begin
Result := -1;
Try
SHGetFileInfo(PChar(AFileName), SHGFI_USEFILEATTRIBUTES,SHFI, sizeof(SHFI),
SHGFI_SYSICONINDEX OR SHGFI_SMALLICON OR SHGFI_DISPLAYNAME);
Result := SHFI.iIcon;
Except
End;
end;
|