letzter TreeNode ermitteln



  • Hallo,

    Ich möchte einen Treeview durchlaufen

    Beispiel:

    a_  
      |- 1
      |  |- m
      |  \- n
      |
      \- 2
    
    b_
      \- 1
         |- o
         \- p
    c_
      |- 1
      |- 2
      \- 3
    

    hier möchte ich nur a, b, c haben
    und wenn ich bei a -> 1 anfange möchte ich die Knoten m und n
    haben, jedoch nicht o und p. Daher kann ich nicht die einzelnen
    Ebenen durchlaufen.

    Mit TreeNode->GetNext(); klappt das auch soweit, doch wie kann
    ich abfragen, ob das nun der letzte Knoten war? Also wie weiß
    ich, dass nach c (bzw. p) schluss ist?

    Ich such also sowas:

    TTreeNode * TreeNode = TreeView->GetNodeAt(0,0);
    bool bRun = true;
    while (bRun) {
        bRun = !TreeNode->IsLastNode(); // Leider gibt es nur IsFirstNode() und
                                      // nicht IsLastNode(), daher geht das nicht.
        ShowMessage(TreeNode->Text)
        TreeNode = TreeNode->GetNext();
    }
    


  • Hallo!

    Du könntest mit einer Schleife, die Anzahl deiner jeweiligen Knoten zählen und diese dann solange auslesen bis zuende!

    Eine Weitere Funktion ist auch GetLastChild();

    Schau doch mal in der Hilfe unter TTreeNode

    Gruß Jannika



  • Danke für deine Antowort.
    Ich hab das Problem nun gefunden. Solange ich die Knoten der Ebene 1 oder höher
    durchlaufe klappt es mit Count. das ganze geht nur nicht, wenn ich die Knoten
    alle als root habe. Das wollte ich aber in meiner Anwendung eh noch verhindern,
    um das ganze übersichtlicher zu gestalten. Somit ist das für meine Zwecke nun
    ausreichend 🙂


Log in to reply