Witam
Mam funkcję pobierającą ikonę z rozszerzenia
function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
Info: TSHFileInfo;
Flags: Cardinal;
begin
if ASmall then
Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES or SHGFI_SYSICONINDEX
else
Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;
SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
Result := Info.hIcon;
end;
Na formie znajruje się TreeView (trv) z odczytaną pliku strukturą katalogów. Po kliknięciu na jakiś item wyświetlam ikonkę:
procedure Tfrm.trvClick(Sender: TObject);
begin
IMage1.Picture.Icon.Handle := GetAssociatedIcon(ExtractFileExt(trv.Selected.Text), False);
end;
Mój problem:
Jak dodać do ImageList ikony rozszerzeń drzewa?
próbowałem różnie, np.:
trv.Images.Handle := GetAssociatedIcon('',true);
for j := 0 to trv.Items.Count - 1 do
begin
ico := GetAssociatedIcon(ExtractFileExt(trv.Items[j].Text), true);
trv.Items[j].ImageIndex := ico;
end;
Nie mam pomysłu...