Prinzipiell sollte dein Code auch funktionieren.
Meiner Menung nach liegt der Fehler in "treeFiles.Items.AddFirst(nil, '');"
Damit stellst du den zweiten Node (B) vor den ersten (A) schreibst die Daten aber wieder an die zweite stelle (A).
Erstes "AddFirst"
+ NodeA[0]
Erstes unterelement "AddChild(Imtes[0]"
zweites unterelement "AddChild(Imtes[0]"
Delphi-Quellcode:
+ NodeA[0]
+ NodeA.1[0]
+ NodeA.2[1]
Zweites "AddFirst"
Delphi-Quellcode:
+ NodeB[0] <------- Bleibt leer
+ NodeA[1] <------- Überschreiben
+ NodeA.1[0]
+ NodeA.2[1]
Wenn du jetzt die Daten in den Node[1] schreibst überschreibst du den ersten (in zwischen nach unten geschobenen) Knoten!
Fügst du nun wieder ein unterelement hinzu so überschreibst du wieder die alten Daten.
Delphi-Quellcode:
+ NodeB[0]
+ NodeA[1]
+ NodeA.1[0] <------- Überschreiben
+ NodeA.2[1] <------- Überschreiben
+ NodeB.1[0] <------- Bleibt leer
+ NodeB.2[1] <------- Bleibt leer