Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Cursorposition?! (https://www.delphipraxis.net/3075-cursorposition.html)

heiopei 21. Feb 2003 16:02


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

Luckie 21. Feb 2003 16:30

OnMouseDown, OnMouseUp, OnMouseMove.

st18061974 21. Feb 2003 17:52

mausx:=Mouse.CursorPos.x;
mausy:=Mouse.CursorPos.y;

Alexander 21. Feb 2003 18:31

als Ergänzung: es gibt auch noch die WinAPI-Funktion GetCurserPos, liefert allerdings (glaub ich nur) nur die Position des gesamten Screens...

Robert 22. Feb 2003 14:05

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;

Alexander 22. Feb 2003 17:06

atimmt, man könnte es auch noch umrechnen, gar nicht dran gedacht!

nailor 22. Feb 2003 22:00

Delphi-Quellcode:
var TP:TPoint; x,y: integer;
begin
  GetCursorPos(TP);
  TP:=Form1.ScreenToClient(TP);
  x := TP.x - Image1.Left;
  y := TP.y - Image1.Top;
end;
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:

Luckie 23. Feb 2003 03:40

Linke obere Ecke des Clientbereiches. Dazu zählt nicht die Rahmenbreite und nicht die Höhe der Fenstercaption.

nailor 23. Feb 2003 13:26

Habe grade festgestellt, dass man auch
Delphi-Quellcode:
Image1.ScreenToClient(TP);
nehmen kann. Damit hat sich die Sache sehr elegant geklärt...

Daniel B 23. Feb 2003 19:12

Re: Cursorposition?!
 
Hallo heiopei,
Zitat:

Zitat von heiopei
ob, und wenn wie man die Cursorposition(X- und Y-Achse) in Variablen einlesen kann!

Benutze die Procedur OnMouseMove. Da steht es einfach in X und Y zur Verfügung.

Wenn Du zum Bleistift (globale) Variablen hast, dann brauchst Du nur noch dies:
Delphi-Quellcode:
MyVar1 := X;
MyVar2 := Y;
//Im OnMouseMove stehen die zur Verfügung

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 Uhr.

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