Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Mouse-Koordinaten ... die 20154. :-( (https://www.delphipraxis.net/192415-mouse-koordinaten-die-20154-a.html)

DieFliege 16. Apr 2017 22:41

Mouse-Koordinaten ... die 20154. :-(
 
Hallo zusammen,

allen ein schönes Osterfest!

Irgenwie sehe ich den Wald vor lauter Bäumen nicht.

Ich kann mir in einem Label oder Edit die aktuellen Mouse Positionsdaten anzeigen lassen, auch ausserhalb der Form, kein Problem.

Wie jedoch kann ich diese Daten mit einem Klick in einem Edit-Feld per Klick übernehmen? Sobald ich die Form selbst verlasse und irgendwo anders hin klicke verliere, passiert nix (klar verliere ja den Fokus). Wie kann ich dies dennoch realisieren?

Aktuell habe ich folgendes:
1x Timer
2x Label
2x Edit

Delphi-Quellcode:
procedure Tform1.Timer1Timer(Sender: TObject);
begin
  lbl_cursor_x.Caption := IntToStr(Mouse.CursorPos.X);
  lbl_cursor_y.Caption := IntToStr(Mouse.CursorPos.Y);
end;
In den beiden Label werden mir die Koordinaten angezeigt, auch ausserhalb der Form. In die beiden Edit sollen die Daten der Stelle rein, die ich mit der Maus anklicke.

Könnt ihr mir helfen?

LG DieFliege

Luckie 16. Apr 2017 22:47

AW: Mouse-Koordinaten ... die 20154. :-(
 
Ich kann dir sagen, warum außerhalb der Form nichts passiert. Weil der Klick eben außerhalb der Form passiert. Wahrscheinlich wirst du um einen Mouse-Hook nicht drumherum kommen.

himitsu 16. Apr 2017 22:51

AW: Mouse-Koordinaten ... die 20154. :-(
 
Zitat:

klar verliere ja den Fokus
Im OnDeactivate der Form, bzw. der Application drauf reagieren und dort die Position auslesen. :roll:

Will man nur 'ne Position wissen, ohne den Fokus zu verlieren:
OnMouseMove/OnMouseUp beim Click verwenden, also irdendwo rein klicken, von da praktisch was wie Drag&Drop zur neuen Position gehen und die Maus loslassen.

DieFliege 16. Apr 2017 22:53

AW: Mouse-Koordinaten ... die 20154. :-(
 
Hey Luckie,

das dachte ich mir auch ;-)

Zitat:

... (klar verliere ja den Fokus) ...
"Mouse-Hook" - da werde ich mal schauen.

LG Die Fliege

Luckie 16. Apr 2017 22:53

AW: Mouse-Koordinaten ... die 20154. :-(
 
Und dann kommt der Klick an? Ich bin mir da nicht so sicher.

DieFliege 16. Apr 2017 22:56

AW: Mouse-Koordinaten ... die 20154. :-(
 
Hi himitsu,

Zitat:

Zitat von himitsu (Beitrag 1367924)
Im OnDeactivate der Form, bzw. der Application drauf reagieren und dort die Position auslesen.

... perfekt, das könnte klappen - Vielen Dank!

LG DieFliege


gerade getestet - Funktioniert leider nicht :-(

Luckie 16. Apr 2017 23:03

AW: Mouse-Koordinaten ... die 20154. :-(
 
Sag ich doch.

himitsu 16. Apr 2017 23:04

AW: Mouse-Koordinaten ... die 20154. :-(
 
Zitat:

Zitat von DieFliege (Beitrag 1367927)
gerade getestet - Funktioniert leider nicht :-(

Drum auch das "bzw." :zwinker:

OnDeactivate der Form reagiert da bissl unorthodox.
Außerhalb der Form kann ja auch eine andere Form der eigenen Anwendung sein und OnDeactivate der Form reagiert nur auf den Wechsel der Forms innerhalb der Anwendung.

DieFliege 16. Apr 2017 23:05

AW: Mouse-Koordinaten ... die 20154. :-(
 
Hey himitsu,

Zitat:

Zitat von himitsu (Beitrag 1367924)
Will man nur 'ne Position wissen, ohne den Fokus zu verlieren:
OnMouseMove/OnMouseUp beim Click verwenden, also irdendwo rein klicken, von da praktisch was wie Drag&Drop zur neuen Position gehen und die Maus loslassen.

... das funktioniert! Werde nun mir noch mal "Mouse-Hook" ansehen - Vielen Dank!

LG DieFliege

t.roller 17. Apr 2017 04:34

AW: Mouse-Koordinaten ... die 20154. :-(
 
Auch wenn die Form nicht den Focus hat, funktioniert es:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var MausPos: TPoint;
begin
  if getAsyncKeystate(VK_LBUTTON)<>0 then
  BEGIN
     GetCursorPos(MausPos);
     label1.Caption := IntToStr(MausPos.x);
     label2.Caption := IntToStr(MausPos.y);
  END;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 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