![]() |
Mauszeigerposition ungleich Mauszeigericonposition
Hallo Leute!
Ich bewege in meinem Programm ein Bild, indem ich es immer an die Cursorposition setze. Jetzt ist mir allerdings aufgefallen, dass das Bild des Cursors von meinem Bild im Fenstermodus weit weg ist. Im Vollbildmodus stimmen die Positionen überein. Im Fenstermodus stört das, da wenn ich einen Mausklick ausführe, wird eine Procedure aufgerufen. Allerdings befindet sich der Mauszeiger dann häufig außerhalb des Fensters. Woher könnte dieses mir unverständliche Phänomen kommen und wie kann ich das Problem lösen? Ich habe es mit SetCursorPos probiert, aber die Cursorposition ist wie gesagt zur tatsächlichen Position des Cursorbildes weit entfernt (genau genommen immer weiter oben links) Danke schonmal für die Antworten |
AW: Mauszeigerposition ungleich Mauszeigericonposition
Wie ermittelst Du denn die Mausposition? Ich habe den Verdacht, dass Dir ScreenToClient weiterhelfen könnte.
|
AW: Mauszeigerposition ungleich Mauszeigericonposition
In der FormClick-Procedure habe ich z.B. folgendes stehen:
Delphi-Quellcode:
Was ist eigentlich ein ScreenToClient?
Image.X := Mouse.CursorPos.X;
Image.Y := Mouse.CursorPos.Y; Also im Prinzip, würde ich einfach nur gerne wissen, wie ich den Cursor wieder an die richtige Stelle bekomme (laut Mouse.CursorPos ist er ja an der richtigen Stellen. |
AW: Mauszeigerposition ungleich Mauszeigericonposition
"Mouse.CursorPos" bezieht sich auf die Bildschirmkorrdinaten. Die des TImages beziehen sich auf dein Formular.
Daher diese Unterschiede. Würde sich dein Formular am Bildschirm exakt oben links befinden, müssten die Koordinaten übereinstimmen. Nimm doch das OnMouseDown-Ereignis:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin Image1.Left := X; Image1.Top := Y; end; |
AW: Mauszeigerposition ungleich Mauszeigericonposition
OnClick ... wieso nicht OnMouseDown? Dort bekommst du direkt die richtigen Koordinaten gelefert.
Zitat:
[edit] wo kommt plötzlich der Matze her? der war vor 'ner Minute noch nicht da und auch nimma 'ne Redbox gab's (falls ich doch länger zum antworten brauchte) |
AW: Mauszeigerposition ungleich Mauszeigericonposition
Zitat:
Dazwischen liegt in der Horizontalen der Rand des Formulars und in der Vertikalen der Rand, die Caption und ggfs. das MainMenu des Formulars. Es sei denn es handelt sich um ein rahmenloses Formular ohne Caption und ohne MainMenu. |
AW: Mauszeigerposition ungleich Mauszeigericonposition
Zitat:
|
AW: Mauszeigerposition ungleich Mauszeigericonposition
Zitat:
Danke! |
AW: Mauszeigerposition ungleich Mauszeigericonposition
OK, zum Zeitpunkt von OnClick wäre OnMouseUp passender.
OnClick = OnMouseDown+OnMouseUp, wobei beim Loslassen der Taste das Ereignis ausgelöst wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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