TreeView Node über Var. erzeugen
-
Hallo,
Node1 = objTree->Items->Item[0]; objTree->Items->AddChild(Node1,"Text");
Gibt es eine Möglichkeit AddChild(Variable,"Text") zu benutzen ? Meine Einträge kommen aus einer Ini-Datei, es ist jeweils der übergeordnete Knoten angegeben.
Andi
-
[ Dieser Beitrag wurde am 09.02.2003 um 02:57 Uhr von AndiS editiert. ]
-
Ich weiss zwar nicht genau, was du erreichen willst, aber hast du dir schon mal die SaveToFile/LoadFromFile-Methoden von TTreeView angesehen?
-
Hi,
ich muss doch über Node1 = objTree->Items->Item[1] ein Item zum aktiven machen, um dann dort ein Child anzuhängen. Wenn ich irgendwann einen weiteren Node anfügen will, dann weiß ich ja nicht die Indexposition des übergeordneten Knotens. Daher suche ich nach einer Möglichkeit diesen Knoten über den dargestellten Text, Key oder ähnlichem anzusprechen.
Root
---Child1
---Child2
------Child2_1objTree->Items->AddChild("Child1", "Child1_1");
So etwas in der Art.
-
übergeordneten Knoten holen : ->Parent
-
Na ja, ich weiß zwar, dass Child1 mein Parent ist, aber wie soll ich das zuweisen ? Gibt es keine Verbindung zu ItemIndex, dass ich über den Text zur Position komme ? Im Moment mache ich es testweise so, dass ich den Tree durchlaufe:
for (int i = 0; i < objTree->Items->Count; i++) { if (objTree->Items->Item[i]->Text == "Andi") { Node1 = objTree->Items->Item[i]; objTree->Items->AddChild(Node1,"Andi_Child"); break; } }
-
Es wird dringend empfohlen die Dokuemntation der Funktion AddNode() nocheinmal genau zu lesen. Vor Allem den ersten Satz der Beschreibung...
-junix
-
Leider kann ich es nicht umsetzen. Gibt es irgendwo eine weitere Beschreibung, in der ich es nachlesen kann ?
Mein Versuch war
objTree->Items->AddNode("Child1_1", "Child1", "Child 1_1", "", naAddChild);
-
ääääh verdammt ich meinte natürlich AddChild....
-junix
-
Aber genau da liegt ja mein Problem - erst wird über den Index der Parent bestimmt, dann der neue Eintrag. Aber ich habe den Index eben nicht, sondern nur den dargestellten Text.
/* Node1 wird auf RootNode2 zurückgesetzt, dann wird ein untergeordneter Knoten hinzugefügt */ Node1 = TreeView1->Items->Item[2]; TreeView1->Items->AddChild(Node1,"ChildNode2");
Wie komme ich auf den Index, wenn ich nur den Text habe ? Wie oben geschrieben durchlaufe ich jetzt den ganzen Tree
Andi
-
Wenn du den Zeiger auf den Parent node hast kannst du doch mit ->Index einfach den Index abfraegen wenn du es denn unbedingt so machen willst.
-
Na wenn ich mal den Zeiger auf dem Parent hätte ..?
Hintergrund der ganzen Sache - über eine INI-Datei werden die Einträge eines dynamisch aufgebauten Trees definiert. Nachdem bereits n-Items hinzugefügt wurden kommt am Ende ein weiteres hinzu, welches Child von einem der bereits bestehenden Einträge sein soll. Was ich habe ist lediglich der Text, den auch der Benutzer sieht. Ich kann sonst nur in der INI-Datei zu jedem neues Element den Index des dazugehörigen Parent hinterlegen, Über ...Item[n] usw. Ist zum Pflegen der INI aber eigentlich zu umständlich.
-
NEIN !!!!!! Hab ich doch schon gesagt, wenn du einen node über ...Item[whatever] hast dann bekomst du über Item[whatever]->Parent den Zeiger auf den Parent Node...
-
Sei mir nicht bös, ist jetzt auch der letzte Beitrag, will nicht nerven.
Das habe ich aber doch nicht.
Bisheriger Aufbau:
Root
---Child1
---Child2
------Child2_1Danach wird der nächste INI-Eintrag gelesen. Dort kommt jetzt "Child2", neues Child hierzu soll sein "Child2_2"
Root
---Child1
---Child2
------Child2_1
------Child2_2Wie soll ich jetzt zu Index[Child2] kommen ?
Node1 = objTree->Items->Item["Child2"]; geht halt nicht.