AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichnen

Ein Thema von DieDolly · begonnen am 9. Dez 2020 · letzter Beitrag vom 13. Dez 2020
Antwort Antwort
Seite 6 von 6   « Erste     456   
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#51

AW: VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichn

  Alt 12. Dez 2020, 20:39
Ungefähr so?

FormCreate (Deklration und FormDestroy spare ich mir hier)
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;

Geändert von DieDolly (12. Dez 2020 um 20:53 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#52

AW: VirtualStringTree - SHGetFileInfo hängt Programm auf / Canvas erlaubt kein Zeichn

  Alt 13. Dez 2020, 00:07
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 Uhr.
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