Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Flackern eines Label/TLabel verhindern

  Alt 14. Sep 2015, 09:15
Würde es einen Unterschied machen eine eigene Panel-Klasse zu bauen? (Ich habe bis jetzt 0 mit selbstgebauten Klassen zu tun gehabt - bzw habe ich auch sonst noch nichts darüber gelernt :> )
Nein, nur das du bereits in der Entwicklungsumgebung die entsprechende Klasse auswählen kannst.

Das Problem mit dem Flackern entsteht vermutlich durch die getrennten Zeichenvorgänge für den Hintergrund ( WM_ERASEBKGND ) und dem Vordergrund ( WM_PAINT ).
Zeichnet man den Hintergrund bei WM_ERASEBKGND nicht, muss man das aber bei WM_PAINT nachholen. Diverse Transparent-Effekte funktionieren so aber nicht mehr richtig.
Deshalb löst man dieses Problem besser mit "Doppelbuffered := True", allerdings muss das vermutlich bei allen Wincontrols angeschalten werden, die unter dem Label liegen.
(angefangen beim Formular, über alle verschachtelten Panels)

Die Kombination mit Windows-Themen ist nicht möglich, da diese die Steuerelemente selbst zeichnen.
  Mit Zitat antworten Zitat