Código Delphi
[-]
...
Buffer.Canvas.Brush.Color:= pbMain.Canvas.Brush.Color;
Buffer.Width:= pbMain.Width;
Buffer.Height:= pbMain.Height;
if Fondo <> nil then
Buffer.Canvas.Draw(0,0,Fondo);
for i:= Low(Figuras) to High(Figuras) do
begin
Buffer.Canvas.Pen.Color:= Figuras[i].Color;
Buffer.Canvas.Brush.Style := bsClear;
if i = Seleccion then
Buffer.Canvas.Pen.Style:= psDot
else
Buffer.Canvas.Pen.Style:= psSolid;
case Figuras[i].Tipo of
...
Lo que se esta haciendo aqui es redibujar las figuras encima de un bitmap, con esta linea en el momento de dibujar las figuras usa el brush clear.