Листинг 4.37.
Составление списков значков
procedure LoadIcons(filename: String; lgImages,
smImages: TImageList);
var
icon: TIcon;
smIconHandle, lgIconHandle: HICON;
i: Integer;
begin
//Загрузка каждого значка (неоптимально, но просто)
i := 0;
while Integer(
ExtractIconEx(PAnsiChar(filename), i, lgIconHandle,
smIconHandle, 1)
) > 0 do
begin
Inc(i);
//Большой значок
icon := TIcon.Create;
icon.Handle := lgIconHandle;
lgImages.AddIcon(icon);
//Малый значок
icon := TIcon.Create;
icon.Handle := smIconHandle;
smImages.AddIcon(icon);
end;
end;
В листинге 4.37 для извлечения значков из файла используется очередная полезная функция модуля ShellApi – Extract IconEx. Прототип функции таков: