![]() |
OnMouseMove ShiftState abfrage macht probleme
Hi,
ich habe ein kleines Programm geschrieben, welches durch ein doppel klick ein neues Formular aufruft, welches eine Grafik beinhaltet. Bei gedrückter Maustaste und bewegung der Maus soll etwas auf einer Zeichenfläche eingezeichnet werden.
Delphi-Quellcode:
Jetzt zu meinem Problem, klicke ich nun doppelt in meinem Hauptformular und die Mausposition ist im Zeichenbereich des neuen
procedure TfrmDialog.PaintBoxMouseMove(..);
begin If MausImZeichenBereich Then Begin If ssLeft IN Shift Then Begin //Zeichenoperation End;{if} End;{if} end; Formulars so wird sofort die Zeichenoperation ausgeführt, obwohl ich die Maustaste nicht gedrückt habe. mfg TUX |
Re: OnMouseMove ShiftState abfrage macht probleme
Dann musst du wohl noch ein Flag-Feld einführen, um zu überprüfen, ob die Maustaste im zweiten Fenster und nicht in einem anderen Fenster heruntergedrückt wurde (die in-Abfrage kannst du dann entfernen).
|
Re: OnMouseMove ShiftState abfrage macht probleme
Das haut nicht hin, weil theotisch wird die maus ja im zweiten Fenster gedrückt, bzw. ich denke das der Status das die
Maustaste gedrückt wurde nicht sofort gelöscht wird. Irgendwo müßte ich ja das Flag setzen. Ich hatte auch schon versucht das OnMouseMove Event erst im OnShow Ereignis des zweiten Formulars zusetzen, bringt auch nichts irgendwie merkt der sich das die Maustaste gedrückt wird, was ja eigentlich nicht sein kann. Vom reinen Verständnis würde ich sagen wenn man mit der Maus einen doppel-klick ausführt löst dieses ein entsprechendes Ereignis aus und mit dem auslösen ist der Status doppel-klick auf der Maus wieder zurückgestzt, dies passiert aber nicht richtig oder erst verspätet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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-2025 by Thomas Breitkreuz