Abfrage ob die Form gerade auf Bildschirm verschoben wird
-
- Beiträge: 142
- Registriert: Sa 30. Jan 2010, 19:35
- OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
- CPU-Target: xxBit
Abfrage ob die Form gerade auf Bildschirm verschoben wird
Ich habe eine Form mit einem Timer und möchte, während der Benutzer die Form auf dem Bildschirm verschiebt und das Programm quasi tot ist, die Timer messages unterdrücken, weil sonst unkontrollierte Effekte entstehen. Bei einem Verschieben der Form wird OnMouseDown/OnMouseUp nicht ausgeführt. Wie kann ich herausbekommen, ob eine Form gerade quasi funktionslos vom Benutzer über den Bildschirm bewegt wird?
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Abfrage ob die Form gerade auf Bildschirm verschoben wir
Wieso ist das Programm beim Verschieben tot ? Bei mir läuft bei einem Test auf Windows 10 alles wunderbar weiter, auch die Ausgaben an die GUI, die durch einen Timer gestartet werden, werden korrekt angezeigt. Ich meine mich zu erinnern, dass das bei Linux auch so ist.
-Michael
-Michael
-
- Beiträge: 142
- Registriert: Sa 30. Jan 2010, 19:35
- OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
- CPU-Target: xxBit
Re: Abfrage ob die Form gerade auf Bildschirm verschoben wir
Danke für den Hinweis. Ja tatsächlich, bei mir läuft das Programm (auf dem Mac) auch weiter. Ich war hier wirklich auf dem Holzweg und konnte das Problem jetzt anderweitig lösen. Ich hatte ein Redraw-Problem. Mein Programm (ein Editor) hat einen selbst gemachten blinkenden Textcursor, der für einen kleinen Bereich ein Repaint anfordert. Das wird aber nicht gleich gemacht, und zwischenzeitlich gibt es einen Repaint für den gesamten Bildschirm, nachdem der User mit dem Verschieben fertig ist. Es sind nun zwei Repaint-Anforderungen gleichzeitig abzuarbeiten, und da gab es einen von mir nicht abgefangenen Konflikt, denn es muß der große Repaint ausgeführt werden und nicht nur die kleine Sektion, denn der Inhalt wurde dann bis auf die Stelle, wo der Cursor ist, gelöscht... Der Mac läßt graphische Ausgaben grundsätzich nur innerhalb der Paint-Message zu, und da können sich dann mehrere Aufforderungen zum Neuzeichnen addieren. Bei allen anderen OS kann man jederzeit neu zeichnen, obwohl das Zeichnen über die OnPaint Message der offizielle Weg ist.