![]() |
Mausposition außerhalb eines Formulars bestimmen
Hallo zusammen,
ich weiß das Thema mit der Mausposition wurde schon oft besprochen, aber ich habe jetzt folgendes Problem: Ich möchte die x und y - Koordinaten des Mauszeigers (im Verhältnis zum gesamten Bildschirm) außerhalb des Formulares rausfinden. Benutze ich:
Delphi-Quellcode:
werden sobald ich das Formular mit dem Mauszeiger verlasse die Koordinaten nicht mehr aktualisiert.
label1.Caption := inttostr(x);
label2.Caption := inttostr(y); (außerdem werden nur die Koordinaten der Form und nicht vom ganzen Bildschirm ausgegeben) Bei
Delphi-Quellcode:
hab ich wenigstens schon die richtigen Koordinaten jedoch werden auch diese beim Verlassen des Formulars nicht mehr aktualisiert.
var p: tpoint;
begin p := mouse.CursorPos; label1.Caption := inttostr(p.x); label2.Caption := inttostr(p.y); Vielleicht habt ihr eine Lösung für das Problem. Vielen Dank im Voraus |
Re: Mausposition außerhalb eines Formulars bestimmen
Hi dEluXe,
der einzige weg wird wohl über [dp]"Hooks"[/dp] sein. Greetz alcaeus |
Re: Mausposition außerhalb eines Formulars bestimmen
Zitat:
![]() |
Re: Mausposition außerhalb eines Formulars bestimmen
Hi Lukas,
Zitat:
Es gibt zwar noch einen Weg über den Timer (alte Mauskoordinaten mit aktuellen vergleichen), allerdings denke ich ist ein Hook wahrscheinlich besser: Beim Timer werden die Mauskoordinaten auch verglichen, wenn sich die Maus nicht bewegt. Greetz alcaeus |
Re: Mausposition außerhalb eines Formulars bestimmen
Zitat:
![]() |
Re: Mausposition außerhalb eines Formulars bestimmen
HiHo,
Also als erstes mal vielen Dank für die schnellen Antworten auf meine Frage. @Tubos Also mit GetCursorPos tritt das gleiche Problem auf (außerhalb des Formulars gehts nicht mehr):
Delphi-Quellcode:
@alcaeus
var
pos : tpoint; begin getcursorpos(pos); label1.Caption := inttostr(pos.x); label2.Caption := inttostr(pos.y); Ich (mittel fortgeschrittener Anfänger :wink: ) hab mal nach Informationen und Tutorials zum Thema HOOKS gesucht und hab bei dem, was ich da gefunden hab, nur verdammt wenig verstanden, sodass ich mich erstmal an der Variante von Luckie mit dem SETCAPTURE versuchen werde. Über Beispiele würd ich mich freuen. dEluXe |
Re: Mausposition außerhalb eines Formulars bestimmen
Also wenn du uns mal verraten hättest, dass du das im onMouseMove-Ereignis deines Forms machst, dann hätten wir dir auch sagen können, das es zwar geht, aber eben nicht so, wie du es machst.
mouse.CursorPos und getcursorpos(...) geben ja immer die richtigen Werte aus, auch wenn sie nicht über dem Form sind, nur wird halt onMouseMove, so wie es halt der Name sagt, nur ausgelöst, wenn sich die Maus innerhalb des Forms verändert, also entweder du machst das mit Hooks, oder diesem komischen SetCapture, oder du nimmst 'nen Timer ...
Delphi-Quellcode:
Eventuell kannst du ja noch die Position zwischenspeichern und dann nur bei Veränderung was machen.
procedure TForm1.Timer1Timer(Sender: TObject);
var p: tpoint; begin p := mouse.CursorPos; label1.Caption := inttostr(p.x); label2.Caption := inttostr(p.y); end; oder procedure TForm1.Timer1Timer(Sender: TObject); var pos: tpoint; begin getcursorpos(pos); label1.Caption := inttostr(pos.x); label2.Caption := inttostr(pos.y); end; z.B.:
Delphi-Quellcode:
(ein Timer mit so um die 20 bis 100 Millisekunden sollte wohl reichen)
procedure TForm1.Timer1Timer(Sender: TObject);
var pos: tpoint; begin getcursorpos(pos); if pos.X shl 16 + pos.Y <> Tag then exit; Tag := pos.X shl 16 + pos.Y; ... label1.Caption := inttostr(pos.X); label2.Caption := inttostr(pos.Y); ... end; |
Re: Mausposition außerhalb eines Formulars bestimmen
Zitat:
|
Re: Mausposition außerhalb eines Formulars bestimmen
na da hab'sch doch einen überlesen ... tschuldsche alci -.-''
|
Re: Mausposition außerhalb eines Formulars bestimmen
Ich hab das für meinen Perfect Simulator schon mit getcursorpos bewerkstelligt und das hat funktioniert...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 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 by Thomas Breitkreuz