Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - OnMouseLeave - Fehler
lars - Do 24.10.02 12:16
Titel: OnMouseLeave - Fehler
Hallo! Ich habe in einem Fenster eine Routine OnMouseLeave deklariert, weil ich beim verlassen des Fensters im Fenster ein Objekt umzeichnen will. Nun funktioniert aber der Aufruf dieser Routine nicht immer, manchmal scheint das System sie zu verschlucken, insbesondere wenn ich das Fenster "schnell" verlasse. Kann mir jemand helfen, woran das liegen könnte, bzw. wie ich das beheben kann?
Danke
Lars
Deklaration:
Quelltext
1:
| procedure CMMouseLeave (var Message: TMessage); message CM_MOUSELEAVE; |
Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.CMMouseLeave(var Message: TMessage); begin if Assigned(OnMouseLeave) then OnMouseLeave(Self);
// Hier die Zeichenroutine ...
Panel.RePaint; end; |
Cheatzs - Do 24.10.02 14:31
Hi!
Hab das Problem auch imemr noch! Aber vielleicht helfen dir ja meine Überlegungen.
Also ich würd einen Timer mit ne Interval von 1 sek oder weniger machen. Dieser müsste abfragen, wo die Maus ist. Dann musst du noch die Fläche deines Programmes ausrechnen und schauen, ob die Maus über dem Formular ist. Wenn ja, machst du irgendne Variable auf True. Bei nächsten Durchlauf ist dann die Maus vielleicht nicht mehr über dem Form. Wenn der Timer dann feststellt, dass die Maus mal über derm Form war, dann führt er die Funktion aus. Dann brauchst du nur noch die Variable wieder auf False zu setzen.
Also sowas müsste gehen. Habs aber noch net ausprobiert.
Ich hoffe, ich hab dir damit geholfen!
Tschau
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!