Ver Mensaje Individual
  #6  
Antiguo 19-04-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que no es necesario hacer lo que has mostrado en el código de volcar la imagen a otro componente para luego restaurarla.
Coincido con [Casimiro] en que algo de código ayudaría a saber lo que estás haciendo y saber cual es el problema.

Lo primero que se me ocurre es que no estás "repintando" tu dibujo "cuando toca".
¿Qué quiero decir con esto?

Los componentes de Windows (entre ellos el TPanel) se están repintando continuamente. Sin ir más lejor, como tú comentas, cuando ponemos una ventana delante de otra y luego la quitamos, Windows "repinta" toda la ventana (y todos los componentes que hay dentro). Si tú pintas sobre un TCanvas directamente, sea de un TForm, de un TPanel, de un TEdit, de un TImage,... (o de cualquier componente) eso que has pintado en el TCanvas no es "persistente", por lo tanto en cuanto se "repinte" el componente, los cambios que hayas hecho en el TCanvas directamente se perderán.

Lo lógico sería capturar algunos de los mensajes de "repintado"; Es decir cuando a al TCanvas le llegue el aviso (mensaje) de "repintarse", si capturas ese mensaje, lo que debes hacer es "después de que se repinte el camvas, volver a pintar tu dibujo". No se si me he explicado bien.

Para eso, resisa información sbre el mensaje WM_PAINT, por ejemplo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita