![]() |
VCL Flicker Reduce Unit
Liste der Anhänge anzeigen (Anzahl: 1)
Wer schon mal auf ein TabSheet, dass Anchors oder Align=alClient hat, Controls gelegt hat, wird sicherlich nicht so begeistert von dem Geflacker sein, dass beim Vergrößern/Verkleinern des Formulars dabei ensteht. Da dieses Geflacker teilweise zu einer immensen Verlangsamung des Resize-Vorgangs kommt und auch nicht gerade schön anzusehen ist, bin ich auf Ursachenforschung gegangen. Und dabei musste ich festetellen, dass Borland beim WM_ERASEBKGND für alle TWinControls den kompletten Inhalt übermalt, also auch den von Child-Controls, die csOpaque im ControlStyle haben.
Damit dieses Geflackere aufhört habe ich nun eine kleine Unit geschrieben, die durch ihre bloses Aufnahme in ein Projekt, das Flackern stark reduziert. Hier mal ein ![]() Zitat:
|
Re: VCL Flicker Reduce Unit
Hallo jbg,
Habe deine Unit kurz in einem aktuellen Projekt ausprobiert. Folgende Probleme sind aufgetreten: Der VirtualStringTree wird z.T nicht mehr richtig gezeichnet. (nur schwarzer Hintergrund) Der EmbeddedWB wird dauern Range Check Errors hervor. Ansonsten sieht's aber vielbersprechend aus! |
Re: VCL Flicker Reduce Unit
Zitat:
Zitat:
|
Re: VCL Flicker Reduce Unit
Zitat:
VT 4.4.3 EWB 14.57 |
Re: VCL Flicker Reduce Unit
Zitat:
Ich habe jetzt zum einen die Übergabe von Cardinals an Integer Parameter mit einem Typecast behoben und zum anderen für die Unit die Bereichs- und Überlaufprüfung abgeschaltet. Einfach nochmal herunterladen (ggf. Browsercache leeren). |
Re: VCL Flicker Reduce Unit
Es gibt eine neue, überarbeitete Version der VCLFlickerReduce Unit.
Zitat:
Ich gebe keine Garantie, dass die Unit zu 100% funktioniert, da es immer einen Fall geben kann in dem eine abgeleitete Klasse mit WM_ERASEBKGND herumtrickst. |
Re: VCL Flicker Reduce Unit
Hallo,
mal eine Frage: tritt das Flackern unter Vista immer noch auf? Da wird schließlich jedes Fenster erst mal in ein Offscreen-Bitmap gemalt. Die Performance sollte dadurch aber nicht unbedingt besser werden... Gruß xaromz |
Re: VCL Flicker Reduce Unit
Zitat:
Die Unit verringert das flackern hauptsächlich dadurch, dass nicht mehrmals auf der selben Stelle mit unterschiedlichen Farbwerten/Hintergrund-Themes gemalt wird. Das beschleunigt das ganze natürlich ein Stück, was Vista auch zugute kommen sollte. |
Re: VCL Flicker Reduce Unit
Zitat:
|
Re: VCL Flicker Reduce Unit
Also bei mir macht die Unit auch einige Probleme. In meiner ListView werden einige Einträge einfach schwarz wenn ich das Fenster maximiere! Ansonsten habe ich eigentlich nichts auszusetzen, klasse Unit :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz