Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnMouseMove ShiftState abfrage macht probleme (https://www.delphipraxis.net/78277-onmousemove-shiftstate-abfrage-macht-probleme.html)

TUX_der_Pinguin 2. Okt 2006 13:49


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:
procedure TfrmDialog.PaintBoxMouseMove(..);
begin
  If MausImZeichenBereich Then Begin
    If ssLeft IN Shift Then Begin
      //Zeichenoperation
    End;{if}
  End;{if}

end;
Jetzt zu meinem Problem, klicke ich nun doppelt in meinem Hauptformular und die Mausposition ist im Zeichenbereich des neuen
Formulars so wird sofort die Zeichenoperation ausgeführt, obwohl ich die Maustaste nicht gedrückt habe.

mfg

TUX

Khabarakh 2. Okt 2006 14:15

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).

TUX_der_Pinguin 2. Okt 2006 14:48

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