Home » Tipps & Tricks » System » Tastatur und Maus » Mausposition festlegen
Mausposition festlegen
Die Klasse TMouse enthält eine Eigenschaft, über die man die aktuelle Mausposition lesen sowie setzen kann. Es handelt sich dabei um die Eigenschaft CursorPos.
procedure TForm1.Button1Click(Sender: TObject); begin Mouse.CursorPos := Point(200, 100); end;
Der Mauszeiger wird auf 200 Pixel von links und 100 Pixel von oben gesetzt. Die Klasse ist erst ab Delphi 4 enthalten und liegt dann in der Unit Controls als globale Variable vor.Die API-Funktion SetCursorPos funktioniert auch mit niedrigeren Delphi-Versionen:
procedure TForm1.Button1Click(Sender: TObject); begin SetCursorPos(200, 100); end;
Mithilfe dieser Procedure kann man den Mauszeiger über einem Control zentrieren:
procedure SetCursorToControl(Control: TControl); var P: TPoint; begin P.X := Control.Width div 2; P.Y := Control.Height div 2; P := Control.ClientToScreen(P); SetCursorPos(P.X, P.Y); end;
Die Routine hat allerdings den Nachteil, dass die Beschriftung von manchen Controls, wie z.B. Buttons verdeckt wird. Diese modifizierte Fassung platziert den Mauszeiger deshalb unter der Beschriftung:
procedure SetCursorToButton(Control: TControl); var P: TPoint; begin P.X := Control.Width div 2; P.Y := Control.Height - 7; P := Control.ClientToScreen(P); SetCursorPos(P.X, P.Y); end;