visual que library definicion componente component delphi vcl

delphi - que - ¿Cuál es la diferencia entre actualizar, actualizar y repintar?



vcl components (3)

De acuerdo con la documentación en línea.

Refresh : repinta el control en la pantalla.

Método de actualización de llamada para volver a pintar el control de inmediato. Actualizar llama al método de Repaint. Use los métodos Actualizar y Repaint de manera intercambiable.

Repaint a pintar: fuerza el control para volver a pintar su imagen en la pantalla.

Llame a Repaint para forzar al control a volver a pintar su imagen de inmediato. Si la propiedad ControlStyle incluye csOpaque, el control se pinta directamente. De lo contrario, el método de Repaint invoca el método Invalidate y luego el método Update para que también se vuelva a pintar cualquier parte visible de los controles debajo del control.

Update : procesa cualquier mensaje de pintura pendiente inmediatamente.

Llame a Update para forzar que el control se vuelva a pintar antes de que se lleve a cabo cualquier otro procesamiento que posiblemente requiera mucho tiempo. Utilice Actualizar para proporcionar comentarios inmediatos al usuario que no puede esperar a que llegue el mensaje de pintura de Windows.

La actualización no invalida el control, sino que simplemente obliga a volver a pintar las regiones que ya se han invalidado. Llame a Repaint para invalidar el control también.

No sé cuál de esos tres métodos me conviene más. Todos trabajan para mí. ¿Alguien sabe la diferencia entre actualizar, actualizar y repintar?


Por una referencia VCL más antigua (CBuilder 6):

Invalidar "Invalidar informa a un control que toda su superficie debe repintarse. Llamar invalidar puede evitar el parpadeo causado por una serie de repintados parciales. No hay penalización de rendimiento por invocar Invalidar varias veces antes de que el control se vuelva a pintar".

El repintado real no ocurre hasta que se actualiza el control. Para forzar un repintado inmediato, llame a Repintura en su lugar.

Repaint "TWinControl :: Repaint llama al método Invalidate y luego al método Update para repintar el control" (paráfrasis leve).

(Lamentablemente, la referencia anterior es mejor y más completa que la referencia más reciente que tengo (CBuilder 2007).


Su pregunta ya está respondida, pero si necesita un buen rendimiento y menos parpadeo, debe llamar a Invalidar en su lugar. Permite a Windows optimizar el proceso de pintura.

Invalidate - Completamente repintar control.

Use Invalidar cuando todo el control necesita ser repintado. Cuando es necesario repintar más de una región dentro del control, Invalidar hará que toda la ventana se vuelva a pintar en una sola pasada, evitando el parpadeo causado por repintados redundantes. No hay ninguna penalización en el rendimiento por invocar Invalidar varias veces antes de que el control se vuelva a pintar.