Ver Mensaje Individual
  #5  
Antiguo 23-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
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;
      // Coordenadas
      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.
Responder Con Cita