Ver Mensaje Individual
  #7  
Antiguo 16-02-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
CarlosAlberto,

Cita:
Empezado por CarlosAlberto
...pero hasta ahora se siguen borrando. En el evento OnActive del Form coloque "form1.Canvas.Refresh" pero no solucionó el problema...
Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   i: Integer;
begin
   Canvas.FillRect(self.Canvas.ClipRect);
   Randomize;
   for i := 1 to 100 do
   begin
      Canvas.Pen.Color := RGB(Random(256), Random(256), Random(256));
      Canvas.LineTo(Random(ClientWidth), Random(ClientHeight));
   end;
end;
El código anterior dibuja 100 lineas de forma aleatoria sobre el Canvas de Form1, pero al redimensionar Form1 o superponer otra ventana sobre este, las líneas son Borradas en Runtime. Este código reproduce el problema de Persistencia de la Imagen descrito en tu requerimiento.

Revisa este código:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
   i: Integer;
   Image1 : TImage;
begin
   Image1 := TImage.Create(Self);
   Image1.Parent := Self;
   Image1.Height := ClientHeight;
   Image1.Width := ClientWidth;
   Image1.Canvas.FillRect(self.Canvas.ClipRect);
   for i := 1 to 100 do
   begin
      Image1.Canvas.Pen.Color := RGB(Random(256), Random(256), Random(256));
      Image1.Canvas.LineTo(Random(ClientWidth), Random(ClientHeight));
   end;
end;
El código anterior dibuja 100 lineas de forma aleatoria, pero con la diferencia de que no lo hace sobre el Canvas de Form1, sino sobre el Canvas de un control TImage creado en Runtime con las dimensiones de Form1 el cual resuelve el problema de Persistencia de la Imagen descrito anteriormente al redimensionar Form1 o superponer otra ventana sobre este.

Otra opción es el uso del evento OnPaint del formulario en cuestión descrito en mensajes previos.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 16-02-2013 a las 17:47:57.
Responder Con Cita