Abfrage ob die Form gerade auf Bildschirm verschoben wird

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

Abfrage ob die Form gerade auf Bildschirm verschoben wird

Beitragvon Martin V » 12. Sep 2016, 22:34 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?
Martin V
 
Beiträge: 114
Registriert: 30. Jan 2010, 19:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon mschnell » 13. Sep 2016, 09:09 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
mschnell
 
Beiträge: 3216
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon Martin V » 13. Sep 2016, 14:18 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.
Martin V
 
Beiträge: 114
Registriert: 30. Jan 2010, 19:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

• Themenende •

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried