About/Contact

Steve Trefethen

Steve Trefethen is a Director of Engineering at Reply. Contact me

View my LinkedIn profile


Powered by discountASP.NET
referal ID: sdtref
Why recommend discountASP.NET?
$720 in referrals so far!


Calendar

<<  February 2012  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar

Disclaimer

The posts on this weblog are provided AS IS with no warranties, and confer no rights. The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.



Quick Tip: FullRepaint and fixing flicker in a Delphi VCL app

January 30 2007 7:54AM

Here's a quick tip: when your looking to fix flicker problems in a VCL application be sure you check the FullRepaint property of any TPanel container components used to control form layout. Recently, while working on one of my pet peeves in the IDE, flicker during a window resize, I found the aforementioned property to be the culprit on more than one occasion. The IDE's editor window is a fairly complicated nesting of (essentially) TPanel components used for docking and client aligned sizing and digging into these panel's I found several of them had FullRepaint set to true. A quick property toggle and rebuild of coreide (an IDE package) and the problem was fixed.

There are still a few, much smaller issues remaining but since this issue affected the code editor, embedded designer and Welcome page fixing it has made a big difference.

[UPDATE: May, 2008] Related posts:

Using the WS_EX_COMPOSITE window style to eliminate flicker on Windows XP
Quick Tip #2: Fixing flicker caused by WM_ERASEBKGND in a Delphi VCL app
FacebookDel.icio.usDigg It!

Tags: ,

Comments (5) -

1/30/2007 8:37:45 AM #

That's really great news !!! Honestly...!!!
I did not notice myself about this property... I will take a closer look at my projects looking for this. Thanks.

Lluis (Albert Research)

1/30/2007 9:55:55 AM #

Steve, this is a great post, but there is
a very confusing issue on processing WM_ERASEBKGND in TWinControl.
(QC number: 23581).

That would be really great if this issue was resolved before
nearest Delphi release.

Could you please tell me if you are going to resolve that one?

Michael Skachkov

1/30/2007 1:35:35 PM #

Steve, thanks for this tip, which addresses a property I had overlooked. I was an early user of the double-buffered property to beat flicker back in D2, and have only lately discovered flicker issues in C# using WinForms. A real shame that we're still battling this, when the fix is so simple, and rarely gets in the way of even near real-time issues.

I'm also discovering that BeginUpdate and EndUpdate used while populating a ListBox don't afford me the same clean fix in C# that they did in Win32. I now will have to experiment in Delphi with WinForms, to see whether the behavior is the same....

Bill Meyer

2/9/2007 10:38:28 PM #

This is really good news about the Galileo editor. The flickering has always annoyed me greatly, but I haven't raised my voice about it. I was thinking that I was about the only one annoyed by it. I'm glad to hear that that's not true and I'm *very* glad that it has been reduced.

Keep up the good work!!

David S.

6/17/2008 1:42:09 PM #

doesn't work with TListView. I have up to 50% cpu usage when I'm using this.

matthias p.

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading