![]() |
MouseDown ohne MouseUp bei Form.ShowModal
Hi :hi:
Ich verschiebe in meinem Programm Punkte auf einem Image, indem ich im MouseDown die Boolsche Variable "Verschieben" auf true setzte und im MouseUp wieder auf false. Im MouseMove wird dann der Punkt verschoben, wenn (Verschieben = true) ist. Das klappt soweit auch ganz gut. Nur habe ich jetzt noch einen Doppelklick auf die Punkte eingeführt, bei dem in einer anderen Form Details angezeigt werden. Diese wird per showmodal aufgerufen. Leider passiert jetzt folgendes: Doppelklick auf den Punkt -> Formular wird aufgerufen Klick auf OK im Formular -> Formular verschwindet -> MouseDownEvent wird ausgelöst -> Verschieben := true; -> Punkt wird verschoben Ich hab mal ein bißchen rumprobiert und gesehen, dass bei einem normalen Doppelklick die Reihenfolge so aussieht: MouseDown Click MouseUp DblClick MouseDown MouseUp Dieses letzte MouseUp kommt bei mir aber nicht, wenn ich die Form per showmodal öffne. |
Re: MouseDown ohne MouseUp bei Form.ShowModal
Hi, du kannst das Problem auch ohne eine globale Variable lösen, indem du im OnMouseMove folgendes abfragst:
Delphi-Quellcode:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin If ssLeft {linke Maustaste gedrückt?} in Shift then {verschieben...} end; |
Re: MouseDown ohne MouseUp bei Form.ShowModal
Vielen Dank! :thumb: Das Problem konnte ich damit lösen. (drei Wörter im Quelltext, manchmal kann es so einfach sein)
Trotzdem wundert mich dieses Verhalten und ich würde gerne wissen wie es dazu kommt ?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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