![]() |
Pixeldifferenz zwischen Komponenten-Mitte und Mausposition
Moin !
Ich stehe gerade vollkommen auf dem Schlauch und auch die Suche hat mir noch nicht geholfen. Vermutlich suche ich aber auch bei diesem Thema mit falschen Begriffen. Mein Problem: Ich will ein TChart mit dem Mausrad Zoomen. Das geht auch, aber eben nur aus der Mitte des Chart heraus. So nun müsste ich mal berechnen, wo denn die Maus aktuell steht und wie viele Pixel in X / Y Richtung das von meiner Chartmitte entfernt ist. Danach kann ich dann das ZoomRect neu berechnen. Soweit so gut ... Nun liefert mir
Delphi-Quellcode:
ja die Mausposition beim "wheelen", aber eben Bildschirmbezogen. Ich kriege also die aktuelle Pixelkoordinate der Maus (vermutlich das selbe wie Mouse.CursorPos.x).
Chart1MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); Meine Mitte des Charts kann ich auch recht einfach berechnen ..
Delphi-Quellcode:
Aber wie kriege ich nun die Pixeldifferenz zwischen meinem Mauscursor und der Chartmitte heraus? Der Ursprung ist ja jeweils ein anderer. :gruebel:
Chart.Width / 2.
Ich habs schon mal irgendwann gemacht / gelesen, aber ich komme im Moment nicht auf den Trichter. Bei dem ersten Stichwort machts vermutlich gleich *click* ... |
Re: Pixeldifferenz zwischen Komponenten-Mitte und Mauspositi
Ich habe TChart zwar noch nie benutzt, aber TChart.ScreenToClient sollte Dir die Mausposition relativ zum Chart selbst liefern. Somit wäre die Abweichung auf der X-Achse Chart.ScreenToClient(MousePos).X - Chart.Width div 2 (wenn ich keinen Denkfehler habe).
|
Re: Pixeldifferenz zwischen Komponenten-Mitte und Mauspositi
Moin !
Delphi-Quellcode:
Ich habs gewusst. Das war irgendwas einfaches. Aber machmal kommt man irgendwie nich drauf. :wall:
ScreenToClient
Danke !!! :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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