Frage zu TTreeView
-
Guten Morgen.
Ich möchte ein TreeView durchlaufen und analyisieren.
for (int i=0;i<TreeView->Items->Count;i++) { Memo1->Lines->Add(TreeView->Items->Item[i]->Text); }Diese Methode ist für mich.., nunja unpraktisch.
knoten1
- string1
- string2
- string3
knoten2
- string1
- string2
- string3
string3
- text1
- text2
string3
- text100
- text100Ich möchte gern gezielt in einer Ebene (knoten1, knoten2, string3, string3) durchgehen und auch sagen können das beispielsweise den Node haben möchte, wo das erste mal string3 auftritt.
Wenn ich diesen habe, möche ich gerne nur in diesem Node nach einem Untereintrag suchen und auch dort sagen können der 1 oder 2 Eintrag mit diesem Namen für mich Relevant ist.
Meine Frage ist nun wie kann man gezielt Ebenen durchgehen und wie erfahre ich wieviele Untereinträge dieser Knoten hat und wie gehe ich diese durch?
Leider habe ich damit meine Probleme und wäre sehr nett wenn jemand diesbezüglich mir weiterhelfen könnte.
-
Hallo
siehe TTreeNode::GetNextChild/TTreeNode::GetNextSibling.
bis bald
akari
-
Also ich starte mit GetFirstNode und gehe dann mit getNextSibling auf gleicher Ebene durch und wenn ich auf einen Eintrag Treffe, wessen Unterknoten ich analysieren möchte, so nehm ich GetNextChild.
Jedoch genau so klappt das leider nicht

TTreeNode *CurItem = TrvDoc->Items->GetFirstNode(); while (CurItem) { if (CurItem->Text=="SUCHTEXT") { // Ausgabe in ein TMemo Memo1->Lines->Add(CurItem->Text); // Deren Unterpunkte ausgeben CurItem = CurItem->GetNextChild(CurItem); while (CurItem) { CurItem = CurItem->getNextSibling(); Memo1->Lines->Add(CurItem->Text); } // Abbruch, da nur dieser Punkt bearbeitet werden sollte break; } // nächsten suchen, auf selben Ebene CurItem = CurItem->getNextSibling(); }Sieht jemand vielleicht den Fehler und kann ihn erklären? Habe schon mehreres durchgespielt, leider ohne Erfolg.