Du kannst dann doch trotzdem TStringList verwenden. Über AddObject weist Du dann einem Eintrag eine neue Sub-Stringliste zu.
So in der Art:
Quelltext
1:
| StringList.AddObject('Knoten mit Child', TStringList.Create); |
Das ganze funktioniert rekursiv auch ziemlich elegant.
Im Zweifelsfall erstell Dir eben einen DDT. Damit ist das Problem schnell gelöst und hat genau die Struktur wie Du sie benötigst.
DDTs sind im Gegensatz zur Stringliste zwar etwas langsamer - dafür ist der Zugriff auf eine Stringliste einfacher.
Delphi bietet leider kaum Datenstrukturen wie Du benötigst an. Es gibt aber mehrere Klassen, die Deinen Anforderungen gerecht werden. Ich meine, daß die EZDSL Klassenbibliothek eine solche Klasse zur Verfügung stellt. Du findest diese auf folgender Site:
www.boyet.com/EZDSL/default.htm . Es sollte aber auch genügend andere Klassen geben, die gleiches können. Schau dazu einfach auf den einschlägigen Seiten wie Torry, DSP, Delphi32, etc nach