![]() |
Maus positionieren Problem
Hello,
versuche die Maus über einem Button zu positionieren, da es möchte mir nicht gelingen. Der Maus-Cursor erscheint etwas verschoben unterhalb des Buttons. Was mache ich falsch?
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; |
AW: Maus positionieren Problem
Hallo,
also bei mir wandert der Maus-Zeiger direkt auf den Button und zwar mittig mit deinem Code |
AW: Maus positionieren Problem
Wenn der Code nach einem Buttonklick ausgeführt wird, funktioniert es. Jedoch nich im OnShow|OnCreate. Schicke nun im OnShow eine Message per PostMessage und positioniere dann die Maus.
|
AW: Maus positionieren Problem
mmh - also ich kanns auch im OnShow nicht nachvollziehen.
Anbei mein Test-Code bei dem es problemlos funktioniert:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
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; procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled := true; Hide; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled := false; Show; end; |
AW: Maus positionieren Problem
Warum schickst du an die Schaltfläche keine WM_COMMAND Nachricht? Das was du da machst ist Frickelei.
|
AW: Maus positionieren Problem
Zitat:
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:
Nja, ansonsten kann es gut sein, daß Form/Button nochmal etwas verschoben werden, bevor es angezeigt wird.
var
MousePos: TPoint; begin MousePos.X := Button1.Width div 2; MousePos.Y := Button1.Height div 2; Mouse.CursorPos := Button1.ClientToScreen(MousePos); end; Deshalb stimme ich Luckie vollkommen zu. |
AW: Maus positionieren Problem
Ach auch noch im eigenem Fenster? Wozu soll das gut sein?
|
AW: Maus positionieren Problem
Zitat:
Wie soll das mit WM_COMMAND funktionieren? |
AW: Maus positionieren Problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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