Thema: Delphi TTreeView - Wie geht?

Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#10

Re: TTreeView - Wie geht?

  Alt 22. Sep 2006, 20:10
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;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat