usar studio progressbar progreso programar llenar como carga bootstrap barra delphi windows-vista progress-bar vcl aero

delphi - studio - como usar progressbar en bootstrap



Desactivar la animaciĆ³n de la barra de progreso en Vista Aero (5)

Estoy usando una VCL TProgressBar de Delphi 2009 como una especie de medidor "vacío / completo".

En Vista, con el tema Aero habilitado, tiene una animación asociada, lo cual es molesto e inapropiado para un indicador.

¿Hay alguna forma de desactivar esto (NO mediante el ajuste de la configuración del tema del usuario) para evitar la animación en este control?

Para aclarar, quiero algo básicamente idéntico a los metros de "espacio en disco usado" en el Explorador de Windows. Sin animación, pero aún con un bonito borde y efectos de sombreado.

Actualizar:

Entiendo que necesito un "medidor", en lugar de una verdadera barra de progreso. ¿Cómo se puede implementar un medidor temático usando el control de barra de progreso estándar de Windows?



De acuerdo con las pautas de la interfaz de usuario de Vista para las barras de progreso , no debe utilizar una TProgressBar para tales fines en absoluto, indica:

Use barras de progreso solo para el progreso. Use metros para indicar porcentajes que no están relacionados con el progreso.

Hay muchos componentes de terceros (por ejemplo, Abakus VCL ) que están destinados a aplicaciones de Automatización de Procesos y similares, ¿quizás podría usar uno de estos controles?


Eche un vistazo a este hilo del foro . Es el único enlace prometedor que encontré, y la primera publicación menciona los diferentes estados de la barra de progreso, por lo que cambiar las propiedades Smooth, State y Style probablemente no ayuden.

Si la sugerencia en la última publicación es de hecho la única manera de dibujar la barra de progreso en el estilo del medidor, entonces su mejor opción es crear una clase descendiente de TProgressBar, anular el manejador WM_PAINT, verificar Vista y temas habilitados, y en eso use las funciones en UxTheme para pintar las diferentes partes del control.


Puedes intentar desactivar los temas para ese control;

SetWindowTheme(ProgressBar.Handle, '' '', '' '');