2012-01-26 15 views
5

debe ser simple, pero no encuentro cómo hacerlo.Delphi: el panel alineado a la derecha parpadea al cambiar el tamaño del formulario

Creo un formulario con un panel alineado a la derecha que coloreo en azul, por ejemplo.

Si tomo mis formularios del borde izquierdo y lo cambio de tamaño hacia atrás y adelante horizontalmente rápidamente, me gustaría que el panel derecho no se mueva ni parpadee. Como su posición no ha cambiado, no hay ninguna razón para que no se mantenga completamente estable. ¿Alguien sabe un truco simple para resolver este problema aparentemente simple?

Gracias

+0

Intenta configurar 'DoubleBuffered: = True' en el constructor de formulario. – Blorgbeard

+2

En realidad, este no es un problema de parpadeo, es un problema de alineación. Esa otra pregunta no ayudará aquí. –

+0

Establecí doubleBuffered en TRUE. También intenté hacer la alineación colocando el panel derecho en el método FormResize. Sin suerte. –

Respuesta

7

esto es sólo un hecho de la vida con las aplicaciones de Windows GUI. Puede ver el mismo efecto en una aplicación de WinForms y, de hecho, incluso en las principales aplicaciones de Windows. Por ejemplo, abra una ventana del Explorador y realice exactamente la misma operación, cambie el tamaño agarrando el borde izquierdo de la ventana. Verás exactamente el mismo efecto. Puede ver el mismo efecto cambiando el tamaño desde cualquier borde. Word y Excel se comportan de la misma manera.

Supongo que Windows repinta en el ciclo de dimensionamiento antes de enviar el mensaje de cambio de tamaño que permite a la aplicación realinear sus controles.

+0

Puede que tenga razón, pero me resulta difícil de aceptar. En mi opinión, incluso si no siempre es fácil de lograr, siempre debemos tratar de evitar volver a pintar una parte de una ventana cuando no sea necesario. En el caso simple que describí, la única parte que se debe volver a pintar es la parte que se ve afectada por el cambio de tamaño. Por lo tanto, el panel derecho debe mantenerse estable. –

+0

Si el administrador de ventanas está haciendo esto, simplemente no tiene suerte. Valdría la pena experimentar con XP, lo que hace que deje de funcionar de manera diferente. –

Cuestiones relacionadas