Un TPaintBox, eso ya es otra cosa. Aunque supongo que ya los sabes, cuando dibujas algo sobre un Paintbox el dibujo no es permanente, se borra cuando es ocultado por otra ventana, por ejemplo. Normalmente se utiliza el evento OnPaint del PaintBox para volver a dibujar lo borrado,y ahí esta el problema. Me explico:
Si estas dibujando directamente sobre el TPaintBox, e ignorando por completo el evento OnPaint, no hay problema:
Código Delphi
[-]
var
i,j,k,x,y: integer;
Bitmap: TBitmap;
begin
Bitmap:= TBitmap.Create;
try
Bitmap.LoadFromFile('d:\1.bmp');
for k:= 2 to 32 do
begin
i:= 2*k;
j:= 2*k;
x:= 100;
y:= 100;
PaintBox1.Canvas.StretchDraw(Rect(x-i,y-j,x+i,y+j),Bitmap);
Application.ProcessMessages;
Sleep(50);
end;
finally
Bitmap.Free;
end;
end;
Pero lo malo es como incluimos luego esto en el evento OnPaint para que redibuje parte de nuestra imagen en caso de que se borre. Si no estas usando el evento OnPaint ignora esto ultimo, si lo estas utilizando, déjame ver como lo usas.