Um das Flackern einer geskinnten Anwendung unter Allen Umständen komplett abzustellen, vergiss AlphaControls, VCLSkin und Konsorten,
dafür gibt es dann nur einen vernünftigen Weg:
VCL wegschmeissen [...]
Weshalb denn das!?
Das eigentliche Problem liegt darin, daß generell in zwei Schritten aktualisiert wird: Auf WM_ERASEBKGND wird das Element mit der Hintergrundfarbe übermalt und in WM_PAINT neu dargestellt. Zwischen beiden Ereignissen liegt logischerweise etwas Zeit. Und genau die bewirkt das Flackern.
Dazu kommt noch, daß Steuerelemte - wenn diese nicht per WS_CLIPCHILDREN aus dem
DC des Parents herausgenommen wurden - auch erst einmal gelöscht werden. Eine ähnliche Unsitte ist es, Controls bei der Darstellung erst einmal komplett zu löschen. Ein unrühmliches Beispiel dafür sind Grids. Anstatt zuerst die Zellen zu zeichnen, deren Bereich aus dem
DC per Clipping herauszunehmen und dann die verbliebene Update-Region mit der Hintergrundfarbe zu füllen, wird meist erst einmal alles gelöscht.
Wurden solche Dinge beachtet, war es auch schon unter Windows 3.1 und einem 220 MHz-Prozessor möglich, flackerfreie Anwendungen zu entwickeln - und das völlig ohne Hardwarebeschleunigung. Auch mit
VCL!
Wenn das Komponentenhersteller vergessen, ist das einfach nur traurig und zeugt nicht gerade von Kompetenz.