Hmmm. Also, man muss wissen, dass man zum hinzufügen eines nodes ein vorhandenes node haben muss. Einen Node bekommt man, indem man z.b. GetFirstNode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); var wurzelnode: TTreenode; tmp_node: TTreenode; begin wurzelnode:=self.TreeView1.Items.GetFirstNode; self.TreeView1.Items.Add(wurzelnode, 'Node1 Ebene1'); self.TreeView1.Items.Add(wurzelnode, 'Node2 Ebene1'); tmp_node:=self.TreeView1.Items.Add(wurzelnode, 'Node3 Ebene1');
self.TreeView1.Items.AddChild(tmp_node, 'Node1 Ebene2'); self.TreeView1.Items.AddChild(tmp_node, 'Node2 Ebene2'); self.TreeView1.Items.AddChild(tmp_node, 'Node3 Ebene2');
self.TreeView1.Items.AddChild(tmp_node.Parent, 'Und wieder zurück auf Ebene1'); end; |
Als erstes weise ich wurzelnode mit hilfe von GetFirstNode den den ersten Node zu. Er zeigt auf den Treeview selbst. Nun kann ich mit der add()-Methode ein Node hinzufügen, wobei halt ein node immer übergeben werden muss und die Capion. Es muss aus dem einfachen Grund immer ein Node mit übergebe werden, weil die Add-Methode ja wissen muss, wo er diesen einhängen muss. Man kann halt keinen "leeren", in der Luft hängenden Node erstellen, der nachtträglich initialisiert wird. jede Add-Methode gibt als Rückgabewert den frisch erstellten Node zurück, Man muss diesen aber nicht wegspeichern. Beim dritten Aufruf speichere ich diesen in tmp_node. Nun füge ich weitere mit Hilfe der AddChild-Methode hinzu, d.h. es wird ein Kotenpunk angelegt und der neue wird eine Ebene tiefer angelegt. Jeder Node hat einen Parent. Auf dieser Art und weise kann man ganz einfach den Baum wieder runterklettern.
Es gibt viele Möglichkeiten, einen Node zubekommen oder anzulegen. An dieser Stelle mach ich jetzt einfach mal Schluss
Bis dann,
Arakis
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.