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 leichterEdit:
Und Jansen war schnellerWie 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