Hola Carlos.
Usando el evento
OnPaint, como te sugiere
Al, tendría que funcionar correctamente.
Ejemplo:
Código Delphi
[-]
...
uses ShellApi;
procedure TForm1.DrawLines;
begin
with Canvas do
begin
Pen.Width:= 3;
MoveTo(40,100);
LineTo(300,50);
MoveTo(60,50);
LineTo(350,90);
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
DrawLines
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Application.Handle, 'open', 'notepad.exe', nil, nil, SW_SHOWNORMAL);
end;
En el ejemplo, podrás comprobar que desplazando el notepad sobre las líneas del formulario, no se percibe el borrado de las mismas. En cambio si desactivas el llamado a
DrawLines en el evento
OnPaint (
// DrawLines), el notepad se comporta como si fuese una goma de borrar.
Saludos.