...

Листинг 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. Прототип функции таков:

Загрузка...