Flicker Flicker Flicker revisited

Lurker e-mailed me:

>Tony Ellis <tel...@futurenet.co.uk> wrote:
>>If I stick a Label over a TImage control, and change the label's font
>>colour at runtime, the whole label flickers. It looks as though the
>>image is getting repainted every time the label is updated.
>>This looks really naff. How can I prevent this flicker?
>How else do you propose to erase the old text before drawing the new
>text, except by redrawing the image to erase the label, and then
>drawing the label text over the image?  When you use transparent
>controls, every control that intersects the invalidated region is
>drawn, back to front.  It's the painter's algorithm.

When did I say my label was set to transparent? It's not, but you still get the

I've now solved the problem by drawing my image directly to the form's canvas,
using the OnPaint event. But I'm left wondering why this is a problem in the
first place. In VB you can stick a label on a form, stick an image in the form's
picture property, and change the label's colour all you like without the least
flicker. What is VB doing that's different, and how does it do it?