![]() |
Cursorposition?!
Hallo,
ich würd gern wissen ob, und wenn wie man die Cursorposition(X- und Y-Achse) in Variablen einlesen kann! PS: In meinem kleinen Testprogramm soll ein Bild durch einen Klick darauf "aufgenommen" werden und dann immer dem Cursor nachgeführt werden, bis es durch einen erneuten Klick wieder "abgesetzt" wird. Dazu müsste ich aber die Cursorposition wissen! Danke schon im Voraus heiopei |
OnMouseDown, OnMouseUp, OnMouseMove.
|
mausx:=Mouse.CursorPos.x;
mausy:=Mouse.CursorPos.y; |
als Ergänzung: es gibt auch noch die WinAPI-Funktion GetCurserPos, liefert allerdings (glaub ich nur) nur die Position des gesamten Screens...
|
Tjo, Alex, allerdings kann man die mithilfe von ScreenToClient in Client-Koordinaten umwandeln - also
Delphi-Quellcode:
var TP:TPoint;
begin GetCursorPos(TP); TP:=Form1.ScreenToClient(TP); //in TP.X und TP.Y sind jetzt die Koordinaten relativ zu Left und Top der Form end; |
atimmt, man könnte es auch noch umrechnen, gar nicht dran gedacht!
|
Delphi-Quellcode:
Hab ich damit genau die Daten des Mauszeigers relativ zur linken oberen Ecke des Bildes, oder gibts noch Sachen zu beachten. (Border der Form (Stichwort: ClientRect)) oder so was? :coder:
var TP:TPoint; x,y: integer;
begin GetCursorPos(TP); TP:=Form1.ScreenToClient(TP); x := TP.x - Image1.Left; y := TP.y - Image1.Top; end; |
Linke obere Ecke des Clientbereiches. Dazu zählt nicht die Rahmenbreite und nicht die Höhe der Fenstercaption.
|
Habe grade festgestellt, dass man auch
Delphi-Quellcode:
nehmen kann. Damit hat sich die Sache sehr elegant geklärt...
Image1.ScreenToClient(TP);
|
Re: Cursorposition?!
Hallo heiopei,
Zitat:
Wenn Du zum Bleistift (globale) Variablen hast, dann brauchst Du nur noch dies:
Delphi-Quellcode:
//Im OnMouseMove stehen die zur Verfügung
MyVar1 := X;
MyVar2 := Y; Grüsse, Daniel :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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