AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte VCL Flicker Reduce Unit
Thema durchsuchen
Ansicht
Themen-Optionen

VCL Flicker Reduce Unit

Ein Thema von jbg · begonnen am 1. Okt 2006 · letzter Beitrag vom 19. Okt 2010
Antwort Antwort
Seite 3 von 3     123   
jbg
Registriert seit: 12. Jun 2002
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 Screen-Recording (1.3MB), dass den Unterschied zeigt.


Zitat:
History:
2006-11-21:
- fixed region bugs
- fixed wrong DefaultHandler call
- fixed parent background painting
- added region exclusion for sub-controls of transparent control children
2006-10-03:
- fixed RangeChecks disabled
Angehängte Dateien
Dateityp: zip vclflickerreduce_147.zip (3,7 KB, 371x aufgerufen)
 
Benutzerbild von stahli
stahli

 
Delphi 11 Alexandria
 
#21
  Alt 26. Aug 2007, 13:12
Hallo jbg,

ich hatte gerade festgestellt, dass mit Deiner alten Unit ein TImage direkt auf einem TabSheet nach dem Bild-Löschen das Bild sichtbar bleibt:
Image1.Picture:=nil;
Das Bild verschwand erst nach dem Minimieren oder Übderdecken meiner Form und anschließendem Neuzeichen der Form.

Deine neue Unit reduziert bei mir kein Fackern mehr (kein Effekt erkennbar).

Mein Problem mit dem Image konnte ich mit Deiner alten Unit klären, indem ich mein Image einfach auf ein Panel setze und dieses dann auf das TabSheet.

Stahli
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#22
  Alt 3. Okt 2007, 11:27
Cool Unit und effektiv xD
Allerdings habe ich zwei Bugs:
Und zwar wird das TreeView nicht immer komplett neugezeichnet (im Expand) und zum anderen zeichnest du den Hintergrund der Tableiste nicht durchsichtig sondern in cBtnFace
Das sieht mit Tabs auf Tabs ziemlich schlecht aus

Ich habe im Anhang mal ein Screenshot von den beiden Fehlern.
Kommentiere ich die Zeile aus, funktioniert alles wunderbar!

MfG
xZise
Miniaturansicht angehängter Grafiken
flickrbug_199.png  
Fabian
  Mit Zitat antworten Zitat
jbg

 
Delphi 10.1 Berlin Professional
 
#23
  Alt 3. Okt 2007, 11:52
Dieses Projekt ist tot, da ich für jede Komponente auf der Welt eine Ausnahme programmieren müsste. Also mehr Ausnahmen als Regelfälle.
Andreas aka AHUser aka jbg
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#24
  Alt 3. Okt 2007, 12:30
Schade
Fabian
  Mit Zitat antworten Zitat
Gebhard

 
Delphi 7 Personal
 
#25
  Alt 19. Okt 2010, 12:27
Hallo,

vielen Dank für Eure Antworten und Eure Hilfe.

Die Kompination aus der "VCLFlickerReduce" und "...FormResize... Invalidate;..."
haben mein Problem gelöst.

Danke und Tschüs

Gebhard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz