TTreeView - Anwählen der Objekte - Wie geht es?



  • Hallo Leute.
    wie kann ich erfahren, wenn ich bei einem TreeView (aufgebaut habe ich das schon) was angeklickt habe, welches das ist?

    sprich:

    1
      -1
      -2
        -1
        -2 <<<<<-< das will ich anklicken
        -2
      -3
      -4
    

    wenn ich jetzt 1/2/2 anklicke, wie finde ich raus, das es angeklcikt wurde?
    danke für eure tips

    tim



  • Hallo,

    Vielleicht hilfte ja dieser FAQ-Beitrag

    Ciao



  • den hatte ich auch schon gefunden, allerdings arbeite ich seit gestern mit der komponente. also zum ersten male.
    ich arbeite hier mit vielen komponnenten zum ersten male *höa* 😉
    naja, und ich habe da voll kein handling drauf.

    vllt hat jmd ja mal ne ideale lösung.

    denn ich muss daraus einen pfad aufbauen und den dann lesen^^



  • und das snippet geht auch nur zum ersten unterbaum- sprich bei 2/2/5 oder so sagt er auch: item an nummer 2

    das ist doof. ich verzweifle. ich glaube mein leiter hier lacht mich schon aus - weil ich das net kann 😢 😋



  • *wiederhochhol*
    hat denn keiner einen lösungsvorschlag? 😞



  • Vielleicht wäre TTreeView::Selected ein Ansatz...



  • ein beispiel

    if((*tree->Items)[0]->Item[1]->Item[3]->Selected == 1)
            {
                    AnsiString Pfad;
                    Pfad = PfadName;
                    Pfad+= (*tree->Items)[0]->Item[1]->Text;
                    Pfad+= "\\";
                    Pfad+= (*tree->Items)[0]->Item[1]->Item[3]->Text;
                    Ausgabe->Lines->LoadFromFile(Pfad);
            }
    

    funzt. dass klappt toll:
    \\terra\Workspaces\NewCluster_2.14\Logs\apfelmus\20051013-095601-MD-JADE.log
    super.
    aber ich muss das doch für jedes baumobjekt hinkriegen.
    und das schaffr ich nicht. gibt es keine funktion die einfach das ding zurückgibt?



  • Hallo

    du must doch nur iterativ die Nodes vom ausgewählten Node bis hoch zum Root-Node gehen. Dazu gibts die Eigenschaft TTreeNode->Parent.

    bis bald
    akari



  • OMG. ja. mir wurde heir gerade schon geholfen. ihr hattet recht.
    das problem ist, das wenn man die komponente zum ersten mal inna hand hat - kann man das net so leicht^^

    TTreeNode *selectedNode = tree->Selected;
            String hostName = selectedNode->Parent->Text;
            AnsiString Pfad = PfadName + hostName + "\\" + selectedNode->Text;
            Ausgabe->Lines->LoadFromFile(Pfad);
    

    so einfach ist ads 🤡
    naja, jetzt weiß ich es. 👍



  • Hallo

    schon nichgt schlecht, aber was passiert, wenn der Root-Node ausgewählt wird, der ja kein Parent hat?
    Und was passiert, wenn doch mal ein Node der dritten Ebene ausgewählt wird, dann wird Root gar nicht berücksichtig.

    Deshalb solltest du das in Schleife packen.

    bis bald
    akari



  • inne schleife ist keine gute idee
    weil ich die schleife nicht steuern kann.
    kann dir den code geben:

    TTreeNode *selectedNode = tree->Selected;
            if(selectedNode->Text == "MD-Host" || selectedNode->Text == "MD-JADE"||
                    selectedNode->Parent->Text == "MD-Host")
            {
                    //wir haben das hauptverzeichniss angeklickt
                    return;
            }
    
            String hostName = selectedNode->Parent->Text;
    
    .
    .
    .
    

    ich weiß nciht ob es so die beste variante ist - aber so klappt es zumindest und mir gefällt es 🙂


Anmelden zum Antworten