![]() |
Ordner in treeview/ listview ausgeben
Hallo,
habe ein problem mit Treeview/ Listview. Ich gebe in einem edit- feld ein Verzeichnis an und möchte dann das das komplette verzeichnis mit unterodner und datein im Treeview/ Listview aus gebenen wird. Wie kann ich das Anstellen? |
Re: Ordner in treeview/ listview ausgeben
Schau dir mal [cl="Verzeichnisse nach Dateien durchsuchen"]Verzeichnisse nach Dateien durchsuchen[/cl] an!
|
Re: Ordner in treeview/ listview ausgeben
:hi:
Schau Dir sonst mal auch noch TShellTreeView und TShellListView an - wenn es die in D5 schon mit hat. mfg Tobias |
Re: Ordner in treeview/ listview ausgeben
Gibt´s erst ab D6. Die Alternative wären die entsprechenden Interfaces von Microsoft, die auch der Explorer selbst nutzt. Damit kann man das auch machen, und IMHO nutzen Shell-Tree- und -List-View intern auch nichts anderes.
|
Re: Ordner in treeview/ listview ausgeben
Hallo Matthis,
hier ist eine Lösung von mir, welche du noch deinen Ansprüchen anpassen musst.
Delphi-Quellcode:
Der Code erstellt einen Verzeichnisbaum in der TreeView-Komponente, dabei gibt der String Ordner den Ordner an, welcher angezeigt werden soll, und Wurzel den Pfad zu diesem Ordner. Wenn du nun einen Pfad angibst musst du nur noch den Pfad nach Ordner und Wurzel unterteilen.
public
{ Public-Deklarationen } Procedure BaumErzeugen(TreeNode:TTreeNode); Procedure BaumErstellen(Ordner,Wurzel:String); Function VerzeichnisErmitteln(Node:TTreeNode):string; end; var Form1: TForm1; Wurzel: String='C:\'; implementation {$R *.dfm} procedure TForm1.BaumErstellen(Ordner,Wurzel:String); var TreeNode:TTreeNode; begin TreeView1.Items.Clear; TreeNode:=TreeView1.Items.AddChild(nil,Ordner); TreeView1.Items.AddChild(TreeNode,'dummy'); end; procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); begin TreeView1.Items.BeginUpdate; Node.DeleteChildren; BaumErzeugen(Node); TreeView1.Items.EndUpdate; end; Procedure TForm1.BaumErzeugen(TreeNode:TTreeNode); var Pfad:String; Suche:TSearchRec; TNode:TTreeNode; begin if TreeNode=nil then Exit; Pfad:=Wurzel+VerzeichnisErmitteln(TreeNode); if FindFirst(Pfad+'*.*',faDirectory,Suche) = 0 then repeat if ((Suche.Attr and faDirectory)=faDirectory) and (Suche.Name<>'.') and (Suche.Name<>'..') then begin TNode:=TreeView1.Items.AddChild(TreeNode,Suche.Name); TreeView1.Items.AddChild(TNode,'dummy'); end else if Suche.Name[1] <> '.' then TNode:=TreeView1.Items.AddChild(TreeNode,Suche.Name); until FindNext(Suche)<>0; FindClose(Suche); end; Function TForm1.VerzeichnisErmitteln(Node:TTreeNode):String; var S:String; TreeNode:TTreeNode; begin Result:=''; if Node=nil then Exit; S:=Node.Text; TreeNode:=Node; while TreeNode.Parent<>nil do begin TreeNode:=TreeNode.Parent; S:=TreeNode.Text+'\'+S; end; Result:=S+'\'; end; procedure TForm1.Button2Click(Sender: TObject); begin BaumErstellen('Windows',Wurzel); end; Tschüß Markus |
Re: Ordner in treeview/ listview ausgeben
Nur wie zeige ich die ganze Festplatte in zwei TreeViews an (in dem 1 die Ordner und im 2 die Dateien)?
|
Re: Ordner in treeview/ listview ausgeben
Wie soll das aussehen? Ich meine, am grundsätzlichen Weg wird sich nichts ändern. Ob ein Tree-View, zwei ... oder mehr. Wozu brauchst du zwei? :gruebel: So eine Art Norton Commander? Dann schreibe eine Prozedur/Funktion, die beide Tree-Views nutzen können.
Edit: Ich bin der Meinung, dass du zu deinem Problem diverse Beiträge finden wirst. Aber ich würde für die Anzeige der Dateien eine List-View nehmen |
Re: Ordner in treeview/ listview ausgeben
Genaueres wo ich eigentlich hinaus will findest du in meinem Thema:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz