Redibujar un formulario que utiliza la API de Windows
Buenas tardes,
he hecho un formulario donde se dibuja una cuadrícula con diferentes llamadas a la función Rectangle de la API de Windows. Cuando minimizo la ventana y vuelvo a maximizarla, se redibujan los botones, las etiquetas, ... excepto aquello dibujado mediante la API, que no se dibuja de nuevo. ¿Alguna sugerencia? Gracias por adelantado. |
Cita:
Aunque suene a broma, lo digo en serio, todo lo que dibujes sobre el canvas del formulario (o de un TPaintBox) se borrara cada vez que lo minimices o sea tapado por otra ventana, es la manera en como trabaja windows. Si quieres darle cierta permanencia a lo que dibujas tienes que guardar toda la información necesaria para reconstruir el dibujo y volverlo a dibujar en cada evento OnPaint. La otra alternativa es dibujar sobre un TImage, lo que dibujas sobre un TImage no se borra. Y no se borra porque internamente el propio componente TImage guarda un copia de lo que se dibujó y lo vuelve a pintar en cada evento OnPaint. |
Lo de redibujar ya me lo imaginaba ;)
Guardo toda la información para dibujar en un array y tengo una función que lo dibuja. Pero poner la función de redibujar en el evento OnPaint carga mucho la memoria. Me quedo con la solución del TImage. Gracias por todo |
La franja horaria es GMT +2. Ahora son las 06:32:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi