TreeNode - Existiert ein untergeordnetes Objekt?



  • Hi,

    ich habe einen Baum (TreeView) und da wird ein Element ausgewählt. Nun will ich prüfen, ob es unter diesem Element noch weitere Elemente gibt.

    TTreeNode *TempNode;
    TTreeNode *TempNode2;
    TempNode = TVCategorystructure->Selected;
    
    if(TempNode)
    {
       TempNode2 = TempNode->GetNext();
       if (TempNode2 == NULL)
          ShowMessage("endknoten");
       else
          ShowMessage("kein endknoten");
    }
    

    Leider wird mir "kein endknoten" angezeigt. Ich sehe da aber keinen Fehler. Wer hat eine Idee?

    hennes



  • Hallo

    so wie ich das verstehe, brauchst du bloß

    if (TempNode->HasChildren)
    {
      ...
      }
    

    prüfen

    bis bald
    akari



  • besten dank,

    hat wunderbar geklappt. verstehe zwar nicht wieso mein code nicht ging und ich das haschildren in der hilfe nicht gefunden habe, aber nun ist s ja ach egal.

    hennes



  • Hallo

    weil GetNext() denn nächsten Node zurückgibt, unabhängig von der Ebene. Erst bei letzter aller gesamten Nodes kommt NULL zurück. Damit kann man also alle Nodes durchiterieren, wie es auch im Beispiel dazu dargestellt wird.
    Schau dir einmal die anderen Get...() Methoden an, dann merkst du die Unterschiede.

    bis bald
    akari


Anmelden zum Antworten