[pr]ImageList i TreeView

0

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...

0

Poradziłem sobie sam:

Tworzę nowy imageList i wrzucam do niego uchwyty ikonek pobranych funkcją GetAssociatedIcon.

1 użytkowników online, w tym zalogowanych: 0, gości: 1