Delphi-PRAXiS
Seite 6 von 6   « Erste     456   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichnen (https://www.delphipraxis.net/206324-virtualstringtree-shgetfileinfo-haengt-programm-auf-canvas-erlaubt-kein-zeichnen.html)

DieDolly 12. Dez 2020 19:39

AW: VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichn
 
Ungefähr so?

FormCreate (Deklration und FormDestroy spare ich mir hier)
Delphi-Quellcode:
IconDictionary := TDictionary<string, Integer>.Create;
VSTInitNode
Delphi-Quellcode:
var
 Info: TSHFileInfo;
 FileExtension: string;
begin
 Node.SetData<TTreeData>(TreeDataKlassen[Node.Index]);

 FileExtension := ExtractFileExt(TreeDataKlassen[Node^.Index].PfadSpalte1);
 if IconDictionary.ContainsKey(FileExtension) then
  begin
   TreeDataKlassen[Node^.Index].IconIndexSpalte1 := IconDictionary.Items[FileExtension];
  end
 else
  begin
    SHGetFileInfo(PChar(TreeDataKlassen[Node^.Index].PfadSpalte1), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_SMALLICON);
    ImageList_AddIcon(SmallImages.Handle, Info.hIcon);
    TreeDataKlassen[Node^.Index].IconIndexSpalte1 := SmallImages.Count - 1;
    IconDictionary.Add(FileExtension, SmallImages.Count - 1);
  end;
end;
VSTGetImageIndex
Delphi-Quellcode:
 if Kind in [ikNormal, ikSelected] then
  begin
   ImageIndex := TreeDataKlassen[Node^.Index].IconIndexSpalte1;
  end;

Aviator 12. Dez 2020 23:07

AW: VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichn
 
Das sieht soweit ich das überblicken kann recht gut aus. Aber wieso führst du immer noch das SHGetFileInfo im InitNode aus? Mach das doch auch an der Stelle, an der du deine TreeDataKlassen Liste füllst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 Uhr.
Seite 6 von 6   « Erste     456   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz