Home » Tipps & Tricks » System » Tastatur und Maus » Aktuelle Mausposition ermitteln

Aktuelle Mausposition ermitteln

Die folgende Procedure ermittelt die Mausposition, wobei (0|0) die obere, linke Ecke des Bildschirms ist.Damit die Werte ständig aktualisiert werden, muss diese Procedure in einem Timer stehen. Das Ereignis OnMouseMove ist hier nicht möglich, da es nicht mehr ausgelöst wird, wenn sich die Maus außerhalb des Formulars befindet.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := IntToStr(Mouse.CursorPos.X);
  Label2.Caption := IntToStr(Mouse.CursorPos.Y);
end;

Bis einschließlich Delphi 3 steht TMouse nicht zur Verfügung.Hier kann folgender Code verwendet werden.

procedure TForm1.Timer1Timer(Sender: TObject);
var
  P: TPoint;
begin
  GetCursorPos(P);
  Label1.Caption := IntToStr(P.X);
  Label1.Caption := IntToStr(P.Y);
end;

Um die Koordinaten relativ zur oberen, linken Ecke der Form umzuwandeln kann die Funktion TControl.ScreenToClient verwendet werden.Umgekehrt gibt es auch TControl.ClientToScreen.