Beispiel für FileTree

Rund um die LCL und andere Komponenten
Antworten
Michl
Beiträge: 2513
Registriert: Di 19. Jun 2012, 12:54

Beispiel für FileTree

Beitrag von Michl »

Ein fröhliches Hallo in die Runde,

da ich eine Komponente brauchte, die Dateien und Ordner übersichtlich darstellen kann, hatte ich mir gestern ein Minimalbeispiel per VirtualStringTree gebaut. Dabei werden vom eingegebenen Verzeichnis alle Verzeichnisse (inkl. ein Unterverzeichnis) und alle Dateien eingelesen. Da nur ein Unterverzeichnis eingelesen wird, ist die Darstellung von Hauptverzeichnissen schnell möglich, es wird bei Verzeichnissen jedoch angezeigt, ob sie einen Inhalt besitzen.

Evtl. braucht dies ja jemand, daher lade ich das mal hier hoch.

Gestern abend habe ich das Projekt noch schnell auf ein TTreeView umgemünzt, dieses zeigt von der fokusierten Node allerdings kein Icon an (siehe Bild). Da ich aber den VST einsetzen werde, habe ich da jetzt nicht weiter gebohrt.

FileTree mit TVirtualStringTree:
Bild

FileTree mit TTreeView:
Bild

Viel Spaß damit!
Dateianhänge
TreeView-FileTree.zip
(7.53 KiB) 71-mal heruntergeladen
VST-FileTree.zip
(8.06 KiB) 63-mal heruntergeladen

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

wp_xyz
Beiträge: 5377
Registriert: Fr 8. Apr 2011, 09:01

Re: Beispiel für FileTree

Beitrag von wp_xyz »

Michl hat geschrieben: Gestern abend habe ich das Projekt noch schnell auf ein TTreeView umgemünzt, dieses zeigt von der fokusierten Node allerdings kein Icon an
TTreeView hat einen ImageIndex auch für den ausgewählten Node, SelectedIndex. So erscheint das Icon auch für den fokussierten TreeNode:

Code: Alles auswählen

 
procedure TForm1.TreeGetSelectedIndex(Sender: TObject; Node: TTreeNode);
begin
  Node.SelectedIndex := Node.ImageIndex;
end; 

Michl
Beiträge: 2513
Registriert: Di 19. Jun 2012, 12:54

Re: Beispiel für FileTree

Beitrag von Michl »

Hey danke, wp!!!

Habe es eben getestet, funktioniert prima! :)

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten