Я бы действительно юзал PaintBox, кода там на 3 копейки:
Код:
procedure TForm1.PaintBoxPaint(Sender: TObject);
begin
PaintBox1.Canvas.Draw(0, 0, BmpBuffer);
end;
где
BmpBuffer - битмап размером с рабочую область
PaintBox1, на котором бы производил все операции по отрисовке.