Du solltest dir das Thema Rekursion einmal anschauen. Damit kannst du dann Baumstrukturen aufbauen die (theoretisch) unendlich tief werden können. Du solltest eventuell auch mit dem Gedanken spielen, deine ganzen Verzeichnisse in Objekten und ObjectLists zu speichern.
Aus dem Kopf aufgeschrieben könnte das dann so aussehen (ungetestet):
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
begin
CreateNode(VirtualStringTree1, nil, Directories);
end;
procedure CreateNode(VST: TBaseVirtualTree; AParent: PVirtualNode; AData: TDirectoryData);
var
Node: PVirtualNode;
NodeData: PDirectoryData;
begin
Node := VST.AddChild(AParent);
NodeData := VST.GetNodeData(Node);
NodeData^.YouProperty1 := AData.Property1Value;
NodeData^.YouProperty2 := AData.Property2Value;
for i := 0 to AData.SubDirectory.Count - 1 do begin
CreateNode(Node, AData.SubDirectory[i]);
end;
end;