Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

AW: Maus positionieren Problem

  Alt 13. Jul 2011, 22:23
Zitat:
Delphi-Quellcode:
var
  MousePos: TPoint;
begin
    MousePos.X := Button1.Left + Button1.Width div 2;
    MousePos.Y := Button1.Top + Button1.Height div 2;
    Mouse.CursorPos := ClientToScreen(MousePos);
end;
ClientToScreen ist eine nette Methode und nicht irgendeine billige Funktion.
Hier fragst du die Form (Self.ClientToScreen), mit der Client-Position des Buttons ... eventuell rechnet ClientToScreen der Form aber nicht mit der Clientposition, sondern mit der Fensterposition?
Und dein Fenster hat doch bestimmt einen Rahmen+Titelleiste?

Warum fragst du nicht also direkt den Button?
Delphi-Quellcode:
var
  MousePos: TPoint;
begin
    MousePos.X := Button1.Width div 2;
    MousePos.Y := Button1.Height div 2;
    Mouse.CursorPos := Button1.ClientToScreen(MousePos);
end;
Nja, ansonsten kann es gut sein, daß Form/Button nochmal etwas verschoben werden, bevor es angezeigt wird.



Deshalb stimme ich Luckie vollkommen zu.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Jul 2011 um 22:26 Uhr)
  Mit Zitat antworten Zitat