2010-09-28 18 views
5

alt text¿Por qué el control Tribbon Delphi 2010 "parpadea" en Windows XP, pero no en Vista/7?

Me he dado cuenta de que cuando uso el control TRibbon que viene con Delphi 2010, funciona sin problemas en mi sistema Windows 7. Sin embargo, la aplicación tiene algunos problemas de pintura extraños en un sistema Windows XP con el "tema clásico" (no he probado el tema playschool).

Sé que hay otros componentes de la cinta disponibles en DevExpress y TMS Software, sin embargo, la compra de un control de terceros no es una opción para este proyecto.

¿Alguien ha tenido este problema, o conoce una solución?

+2

consigo el mismo con el tema "guardería", así – Nat

Respuesta

4

más probable porque Windows 7 usos "Escritorio Composición", que esencialmente significa que un componente se señala a un mapa de bits fuera de la pantalla y luego copiado en la pantalla. En XP, un componente generalmente se dibuja directamente en la pantalla (lo que puede causar parpadeo si el componente primero borra lo que está allí y dibuja sobre la "pizarra limpia").

Delphi admite doble almacenamiento en búfer, lo que hace lo mismo. Si establece la propiedad DoubleBuffered de la cinta en True (en código, ya que no está publicada), entonces eso debería evitar el parpadeo (a cambio de memoria extra asignada y movida al dibujar). Debo decir, sin embargo, que no lo he hecho. en realidad lo probé con TRibbon.

Tenga en cuenta que no hay ninguna sobrecarga adicional cuando se ejecuta en Windows 7 (o Vista, para el caso) si se establece DoubleBuffered en True. El VCL tiene un código que omite el negocio de mapa de bits fuera de la pantalla cuando se ejecuta en una versión de Windows que hace composición de escritorio.

+0

Buena respuesta y apreciar especialmente la nota sobre ninguna sobrecarga a DoubleBuffered. – MarkF

0

más probable es que esto es un error en el código TRibbon, la cinta de Microsoft hace perfecto tanto en XP y Win7.

Si cambia de tema XP no muestra el botón Minimizar en el cambio de imagen para reflejar su cambio de tema? Si este es el caso, probablemente el código Ribbon ha sido optimizado para Vista y 7 y no ha sido desarrollado para funcionar perfectamente bajo XP.

No puede resolverlo a menos que pueda modificar el código de TRibbon.

Cuestiones relacionadas