Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   VST OnNodeClick HitInfo Koordinaten des Klicks relativ vom Node (https://www.delphipraxis.net/200032-vst-onnodeclick-hitinfo-koordinaten-des-klicks-relativ-vom-node.html)

Bünni 13. Mär 2019 00:41


VST OnNodeClick HitInfo Koordinaten des Klicks relativ vom Node
 
In einem anderen Beitrag wurde mir schon sehr nett geholfen Danke.
Ich habe mit dem VirtualStringTree wieder ein kleines Problem. Aber ich denke, das ist dieses mal rechnerischer Natur.

Im VSTNodeClick-Event rufe ich auf
Delphi-Quellcode:
 if HitInfo.HitColumn = 0 then
  begin
   if hiOnItem in HitInfo.HitPositions then
    begin
     X := HitInfo.HitPoint.X;
     Y := HitInfo.HitPoint.Y;

     if System.Math.InRange(X, 17, 30) and System.Math.InRange(Y, 13, 25) then
      begin
      end;
    end;
  end;
Im Prinzip prüfe ich, ob auf ein von mir selbst in die Zelle gemaltes Bild geklickt wurde. Die Zelle hat mehrere von mir dort hin gemalte Bilder.
Ich möchte reagieren, wenn auf das rechte davon geklickt wird.

Das Problem ist, dass das beim ersten Node klappt. Beim zweiten nicht mehr, da ändert sich dann die Y-Koordinate.
Kann man irgendwie an die Koordinaten innerhalb des Nodes selber kommen und anschließend mit festen Werten prüfen?

peterbelow 13. Mär 2019 11:04

AW: VST OnNodeClick HitInfo Koordinaten des Klicks relativ vom Node
 
Warum prüfst Du überhaupt die Y-Koordinate? Die Icons sind doch horizontal nebeneinander, oder? Da kannst Du Y vergessen.
Allerdings hilft Dir der X-Test auch nur weiter, wenn alle Nodes auf der gleichen Ebene sind.

In Delphi's normalem Treeview gibt es für TTreenode eine DisplayRect-Methode, die das bounding rectangle des Nodes zurückgibt. Sieh mal nach, ob VST was ähnliches hat.

Bünni 13. Mär 2019 11:31

AW: VST OnNodeClick HitInfo Koordinaten des Klicks relativ vom Node
 
Die sind horizontal nebeneinander. Ich dachte Y bezieht sich nur auf den Node und wusste nicht, dass das der absolute Pfad vom kompletten VirtualStringTree ist.
Auf Anhieb habe ich nichts mit DisplayRect gefunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz