name eines angeklickten eintrages ausgeben (treeview)



  • treeview mit folgender struktur:

    - hallo
    |
     - hallo2
    |
     - hallo3
    

    wenn ich nun auf hallo klicke soll er mir *den namen des eintrages (also hier: hallo)* irgendwo zwischenspeichern und in edit1 anzeigen. wie mache ich das ?

    ein freund hat mir dazu folgenden code als ansatz gegeben. er meinte, ich müsste das über die mausposition lösen.

    TPoint P = Mouse->CursorPos;
    
    P = DBTreeView->ScreenToClient(P);
    
    THitTests HT = DBTreeView->GetHitTestInfoAt(P.x,P.y);
    
    TTreeNode *pItem = DBTreeView->GetNodeAt(P.x,P.y);
    
    if (HT.Contains(htOnItem) || HT.Contains(htOnIcon))
    {
       AnsiString S =  AnsiString(pItem->Level);
    
       String ebene = StrToInt(S);
    
       Edit1->Text = ebene;
    }
    

    mir würden erstmal schon ein paar kleine denkanstöße reichen.

    kOOni



  • Sieh dir mal TTreView::Selected an.

    Ansonsten siehe auch die FAQ, "TreeView - Ebene ermitteln".



  • thx jansen, aber das war nicht das was ich brauchte. ich werde es mal mit onselect,select und text probieren.

    hast bei TTreView::Selected das 2. 'e' vergessen.



  • e86 schrieb:

    das war nicht das was ich brauchte

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      Caption = TreeView1->Selected->Text;
    }
    

    ich werde es mal mit onselect,select und text probieren

    Viel Spass.

    bei TTreView::Selected das 2. 'e' vergessen.

    ... du mich auch mal! 😉



  • Was hältst du von folgendem Code?

    void __fastcall TForm1::TreeView1Click(TObject *Sender)
    { Edit1->Text = TreeView1->Selected->Text;  
    }
    

    Oder was schwebte dir vor?

    Was ich in einer Datenbankanwendung gemacht habe fand ich auch recht nett:
    Ich habe bei Erzeugen der Baumknoten mittels AddObject einen Struct angehangen der alle Datenbank Keys enthält. Macht einem das Leben nachher viel leichter 😉

    Edit:
    Und Jansen war schneller 😉 Wie immer...



  • ich hab es genau wie DMarko gelöst.
    einfach im Event Onchange auf TreeView->Selected->Text; und dann gings.

    thx für eure Hilfe (Thread kann geclosed werden.)

    kOOni


Anmelden zum Antworten