Flicker and repaint problems

While the TMS components look amazing I am find that the experience for the user can be a little frustrating.

I really need some help with this problem.


I have made an interface as I would like to use see it in my application. I am sure there are other ways of doing the same thing and if anyone has constructive comments I would be more that happy to be shown alternative solutions.

However, in this case the redrawing of the panels kills the app. Try using the mousewheel  to scroll the area and you will see what I mean. I have seen excessive flickering and redrawing before and wondered how people dealt with the issue.

Is it possible to prevent repainting of all the panels until such time that the scroll has gone a bit further? 

How do I make this interface feel more fluid and productive?


An update.

I have reduced the number of panels on the panel group but the flicker and redrawing remain a major issue.

Here is a newer version


Any help with speeding this up would be much appreciated.

Can you try to add this code:

procedure TForm1.FormCreate(Sender: TObject);
  PanelGroupFamilies.DoubleBuffered:= true;
  PanelGroupFamilies.OptimizePaint := true;

HI Nancy,

The suggestion certainly has an impact, it improves certain problems.

However, it introduces new problems. The setting for doublebuffer has a annoying side effect that now a "panel" is momentarily visibly drawn in the actual scroll bar area. it looks very weird.

Is there something else I could try?

What Delphi version do you use?
I know there are at least in several Delphi versions, issues with the scrollbar handling in doublebuffered container controls. Sadly, these are issues as VCL level for which we haven't found a workaround.


I am using Delphi xe5 -

If it was possible to surface an onscroll event then I could lock the repainting until the end of the scroll. That way the panels wouldn't repaint so often.