Zitat von
Kruemel2oo2:
naja und jetzt muss ich erstma raffen wie ich diesen TTTreeNode anwende um das nachern in ner Treeview auszugeben. und nu hoff ich das mir das einer ma so nen bischen erklären kann
Du brauchst dir eigentlich nur die Funktion CreateTreeNode von dem Beispiel auf Seite 2 angucken. Diese könntest du abändern, in dem du statt dieses PIDL parameters direkt einen string-paramter für den Text des Knotens verwendest, z.B.
Delphi-Quellcode:
function CreateTreeNode(hParent: TTreeNode; szCaption : string): TTreeNode;
begin
Dann musst du nur noch die ScanDir Funktion so umbauen, das sie den aktuellen unterordner und den aktuellen TTreenode als Parameter entgegenehmen kann, z.B.
Delphi-Quellcode:
procedure ScanDir(const Directory: String; const SubDirectory: String; curtn : TTreeNode);
var
SR: TSearchRec;
tn : TTreeNode;
begin
tn := CreateTreeNode(curtn, SubDirectory);
Weiter unten rufst du ScanDir dann z.B. so auf:
ScanDir(Directory + SR.Name + '\', SR.Name, tn);
Der erste Aufruf (noch weiter unten) sähe dann so aus:
ScanDir(Directory, Directory, nil);
CreateTreeNode erstellt dann beim ersten Aufruf mit tv.Items.AddFirst() den Hauptknoten, weil das TreeView ja noch leer ist und deshalb beim ersten aufruf nil angegeben wird, das es noch keinen ParentNone (übergeordneten Knoten) gibt.
Bei den folgenden Aufrufen wird dann tv.Items.AddChild() verwendet, weil du ihm mit tn den TreeNode des aktuellen Ordners übergibst, in dem er ja dann einen Unterknoten erstellen soll.