gracias por tu respuesta. La verdad es que no acabo de entenderlo del todo bien. Mi drawing area se llama dwa1. He puesto en primer lugar como FALSE la propiedad Cached del drawing area, como me aconsejabas, para evitar ese parpadeo. Después he probado dos cosas, una me funciona y otra no.
La que me funciona es coger todo el código que anteriormente tenía en un método de dibujo de un módulo y meterlo directamente en el evento Draw del drawing area (Si dwa1.Painted=FALSE debo incluir el Paint.Begin(Fain.dwa1)... Paint.End, pero si es TRUE no debo incluirlo porque me dará error). Cada vez que quiero dibujar llamo al método dwa1.Refresh. Con todo esto el parpadeo efectivamente desaparece.
La que no me funciona es dejar el método de dibujo en el módulo en el que estaba (incluído el Paint.Begin(Fain.dwa1)... Paint.End), y llamar a ese método mediante el evento dwa1.Refresh. En este caso me da un error "Cannot paint outside od Draw event handler". Es decir, no entiendo cómo hacer que:
Citar:
Saludos