Программирую на С++. необходимо было сделать отрисовку столбчатой диаграммы, и в качестве теста значения высот столбцов диаграммы задаются рандомно. 
Вот кусок кода, осуществляющий отрисовку(на примере PaintBox):
float x, ypos=0, y=250, z=250, st=4, min=10, shirina = 150;
      PaintBox1->Canvas->Brush->Color = clBlack;
      PaintBox1->Canvas->FillRect(Rect(0, 0, PaintBox1->Width,
      PaintBox1->Height));
                        PaintBox1->Width = (shirina*(st+1));
 PaintBox1->Height = z;
 ypos = PaintBox1->Height;
 ypos+=min;
 x=-(st/2);
 PaintBox1->Canvas->Pen->Color = clLime;
 randomize();
 for (int k=0; k<150; k++)
 {
 x+=(st+1);
 PaintBox1->Canvas->Pen->Style = psSolid;
 PaintBox1->Canvas->Pen->Width = st;
 PaintBox1->Canvas->MoveTo(x, ypos);
 PaintBox1->Canvas->LineTo(x, ypos-(random(y)));
 }
}
В тестовом приложении все это выполняется через таймер. но возникла такая проблема - при перерисовке изображения окно компонента мерцает, и это мерцание необходимо убрать. 
Смотрел, как убрать данную проблему и как один из способов - предлагается создать внеэкранный битовый образ, все действия про прорисовке выполнить в нем, а потом готовое изображение вывести на канву компонента. 
Пожалуйста, покажите это на конкретном примере, а то чтобы я не пробовал, приводит к еще большему мерцанию 
 
 
Спасибо.