Hallo,
Zitat von
Alfalge:
...Meine einzige Frage
ist, wie ich im OnClick die geklickte Node rausbekomme...
OnClick in Verbindung mit Selected liefert dir den selectierten Node,
egal ob Du drauf klickst oder daneben.
OnChange wird nur ausgelöst wenn die Selectierung von einen Node auf einenen anderen wechselt,
klickst du einen markierten Node an, wird das Ereignis nicht ausgelöst.
Matze hat Dir schon den richtigen Tipp mit
GetNodeAt(x, y); gegeben, wenn Du das noch mit
GetHitTestInfoAt(x,y) verbindest, dann hast Du genau den Knoten der angeklickt wird.
Über den Rückgabewert vom Typ THitTest der Funktion GetHitTestInfoAt kannst Du sehr genau feststellen worauf im Bereich des TreeView geklickt wurde.
Delphi-Quellcode:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var aNode : TTreeNode;
begin
//htOnLabel x,y liegt im Bereich der Node-Beschriftung
if (htOnLabel in TreeView1.GetHitTestInfoAt(x,y)) then
begin
aNode := TreeView1.GetNodeAt(x,y);
showmessage('KnotenText: '+TreeView1.Selected.Text+#13#10
+'AbsoluteIndex: '+IntToStr(TreeView1.Selected.AbsoluteIndex));
end
else
showmessage('Nicht auf die Beschriftung eines Node geklickt');
end;