Листинг 4.35.
Определение значка файла
function GetFileIcon(filename: String; small: Boolean = False ): HICON;
var
info: SHFILEINFO;
flags: Cardinal;
begin
flags := SHGFI_ICON;
if small then
//Получение малого значка
flags := flags or SHGFI_SMALLICON
else
//Получение большого значка
flags := flags or SHGFI_LARGEICON;
ZeroMemory(Addr(info), SizeOf(info));
//Получение значка
SHGetFileInfo(PAnsiChar(filename), 0, info, SizeOf(info), flags);
GetFileIcon := info.hIcon;
end;
Используемая в листинге 4.35 API-функция SHGetFilelnfo объявлена в модуле ShellApi. Там же объявлена структура SHFILEINFO.
В листинге 4.36 приведен пример использования функции GetFilelcon: здесь полученные значки сохраняются в элементах управления Image (по одному для большого и малого значков).