Ver Mensaje Individual
  #2  
Antiguo 02-05-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
Tienes 2 soluciones, utilizar un conponente TImage para hacer tus dibujos, o en el evento OnPaint del formulario redibujar lo que se ha borrado.

El evento OnPaint se produce cuando el formulario necesita ser redibujado. Aqui puedes poner la instruccion:
Código Delphi [-]
procedure TForm1.FormPaint(Sender: TObject);
begin
  Form1.Canvas.Ellipse(0,0,400,400);
end;

Esto solo es util cuando la operacion de dibujo no es muy compleja, pero cuando hay que dibujar varios elementos puede ser util utilizar la propiedad Canvas.Cliprect que nos devueleve las coordenadas de la porcion del formulario que necesita ser redibujada, evitando asi tener que repetir todo el dibujo:

Código Delphi [-]
procedure TForm1.FormPaint(Sender: TObject);
var
  R: TRect;
begin
  if IntersectRect(R, Canvas.ClipRect, Rect(0,0,400,400)) then
    Canvas.Ellipse(0,0,400,400);
end;

Última edición por seoane fecha: 02-05-2006 a las 20:48:18.
Responder Con Cita