Tech-Ecke / Delphi Inhalt / TProgressBar

 

     TProgressBar

 

   Farbe ändern

Die Farbe der Progressbar kann zwar über die Methoden ".BarColor" und ".BackgrounColor" angepasst werden, jedoch werden diese durch die jeweiligen Themes in Windows wieder überschrieben. Eine Möglichkeit wäre das deaktivieren der Verwenden von Themes für die komplette Anwendung. Das zu den Haken bei Peject/Options.../Recource Compiler/Application/Enable runtime Themes wegnehmen.

Das hat jedoch zur Folge dass die komplette Anwendung im Windows95-Stiel erscheint, was wohl auch nicht jedermanns Geschmack sein dürfte. Alternativ dazu kann man aber auch für einzelne Komponenten die Anwendung des Windows Themes deaktivieren.

Bei deaktiviertem Windows Themes für die komplette Anwendung

  ProgressBar1.BarColor := clRed;    // Balkenfarbe
ProgressBar1.BackgrounColor := clBlue;   // Hintergrundfabe
 
// oder alternativ

SendMessage(Progressbar1.Handle, PBM_SETBARCOLOR, 0, clRed);   // Balkenfarbe, benötigt CommCtrl in Uses!
ProgressBar1.Brush.Color:= clBlue;   // Hintergrundfabe
 

Bei genereller Verwendung von Windows Themes die entsprechende Progressbar herausnehmen

Im Grunde können die oben gezeigten Methoden auch hier genommen werden, jedoch muss die Komponente zuvor aus der Themes-Verarbeitung rausgenommen werden. Dazu folgenden Code bem OnShow-Event der Form hinterlegen auf der die Progressbar platziert ist:

  UxTheme.SetWindowTheme(ProgressBar1.Handle, ' ', ' ');  // benötigt UxTheme in Uses!
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 28.01.2012]