Hola.
He encontrado una posible solución al problema de que desaparezca la imagen. Posiblemente no valdrá para todo el mundo, pues dependerá de las necesidades.
Comparto el código por si alguien lo puede necesitar en el futuro.
Se trata de añadir un TImage y copiar a la imagen lo que se había dibujado en el panel y así la imagen queda fija.
El image1.BringToFront permite que la imagen quede por encima del panel.
El procedimiento image1click lo incluyo porque permite comprobar, tras realizar el proceso, si estamos viendo la imagen o estamos viendo el panel.
Con relación a saber (en el caso de que hayan varias aplicaciones o programas funcionando en Windows) si el programa que está activo en ese momento es el programa nuestro. Eso no he encontrado la forma de hacerlo.
Saludos.
Código Delphi
[-]
procedure TForm1.Button8Click(Sender: TObject);
begin
Image1.Left := Panel1.Left;
Image1.Top := Panel1.top;
Image1.Width := Panel1.Width;
Image1.Height:= Panel1.Height;
Image1.Canvas.CopyRect(Rect(0,0, Image1.Width, Image1.Height), Panel1.Canvas,
Rect(0,0,Panel1.Width, Panel1.Height));
Image1.BringToFront;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
ShowMessage('CLIC EN IMAGE1');
end;