Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Wieder mal das leidige Thema "Flackern"

  Alt 28. Aug 2019, 11:28
Danke für das Lob.

Das ist rein VCL (quasi ein Versuch mal FMX-Light (sehr, sehr light ) umzusetzen.)

Es sind keine Controls, sie sollten sich nur so anfühlen.


Das funktioniert so:

Im "Control-Thread":
- Bitmap füllen mit Hintergrundfarbe.
- Pro "Control" Rechteck zeichnen (mit oder ohne Hintergrund, Rahmen, Text)
- Pro Control Z-Order und Positionen merken.
- evtl. 1 focussiertes Control merken.
- Bitmap an Mainthread übergeben

Im Mainthread:
- Bitmap auf Canvas kopieren
- Maus- und Tastaturereignise an den "Control-Thread" übergeben

Im "Control-Thread":
- Maus- und Tatsaturereignisse verarbeiten und z.B. Control-Positionen ändern.
- wieder zeichnen


Das Formular ist in dem Fall nur eine Zeichenfläche und Eingabeschnittstelle.


Wenn Bei Dir von der Bedienung her grundsätzlich alles schon in einer Paintbox funktioniert (abgesehen vom Flackern) und Du mit Threads umgehen kannst, dann sollte sich das bei Dir auch so realisieren lassen.

Die Maus- und Tastaturereignisse habe ich in Ques an den Thread übergeben und das Bitmap dann einfach synchronisiert an den Mainthread.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat