![]() |
ProgressBar färben?
Hallo,
ich versuche schon seit gestern die ProgressBar zu färben. Habe alles ausprobiert was google her geben konnte, aber nix klappt. Hier einige Beispiele:
Delphi-Quellcode:
Bin für jede Hilfe dankbar!
const WM_USER = $0400;
CCM_FIRST = $2000; PBM_SETBARCOLOR = WM_USER + 9; PBM_SETBKCOLOR = CCM_FIRST + 1; ... ProgressBar2.Brush.Color:= clRed; // Set Background colour //ProgressBar2.Perform(PBM_SETBARCOLOR, 0, clRed); //ProgressBar2.Position := 50; SendMessage(ProgressBar2.Handle, PBM_SETBARCOLOR, 0, clRed); //SendMessage(ProgressBar2.Handle, PBM_SETBARCOLOR, 0 , RGB(200, 200, 155)); Progressbar2.Repaint; //ProgressBar2.Parent.Color:=clred; //ProgressBar2.Color:=clred; //SetWindowTheme(ProgressBar2.Handle, '', ''); |
AW: ProgressBar färben?
Wenn er wirklich bunt sein soll, wirst Du ihn komplett selbst zeichnen müssen.
Der normale Fortschrittsbalken von Windows ist je nach Status entweder grün, gelb oder rot. "Nur" mal eben so die Balkenfarbe zuweisen geht meines Wissens nicht. Du könntest aber schauen, ob Du bei den Windows 3.1-Komponenten noch den "TGauge" findest. Möglicherweise kann man dort ein wenig Farbe drüberkippen. |
AW: ProgressBar färben?
Liste der Anhänge anzeigen (Anzahl: 2)
Wenn man vorher das Theming abschaltet, geht es. Sieht aber auch dementsprechend schrecklich aus.
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ SetWindowTheme(ProgressBar1->Handle, NULL, L""); SendMessage(ProgressBar1->Handle, WM_USER + 9, 0, clRed); } |
AW: ProgressBar färben?
Zitat:
Übrigens der von mir gezeigte Code funktioniert laut Quellen bei vielen Usern, bei mir aber nicht. Liegt wohl am Lazarus nehme ich an. |
AW: ProgressBar färben?
Du musst das Theming ausschalten
Du musst das Theming ausschalten Du musst das Theming ausschalten Du musst das Theming ausschalten Einmal reicht anscheinend nicht :roll: |
AW: ProgressBar färben?
Zitat:
![]() Oder war es nicht für Windows >= 7? |
AW: ProgressBar färben?
Theming bedeutet: Windows soll entscheiden¡
|
AW: ProgressBar färben?
Zitat:
... ... das Theming abschalten muss. 8-) |
AW: ProgressBar färben?
Hm... ok... muss es dann so akzeptieren. Danke euch!
|
AW: ProgressBar färben?
Den Status kannst du über die Eigenschaft "Status" der Progressbar ändern. Hier gibt es 3 Modi: pbNormal (Grün), pbPause (Gelb) und pbError (Rot). Andere Farben gehen eben nur indem du das Theming ausschaltest oder über die von Daniel erwähnte TGauge. Die hat zudem noch eine Prozentanzeige. Die TGauge sieht aber natürlich nicht so schön aus, wie die normale Progressbar.
|
AW: ProgressBar färben?
Oder in neueren Delphi-Versionen verwendet man das eingebaute Theming um die Anwendung unabhängig von Windows eigen gestalten zu können.
Hier könnte man dann die Progressbar im eigenen Theme lila färben. |
AW: ProgressBar färben?
Zitat:
|
AW: ProgressBar färben?
Oh. Ich bin Delphi geschädigt. Dachte allerdings, dass eine solche Eigenschaft auch in Lazarus existiert.
|
AW: ProgressBar färben?
Zitat:
Gut, im Gegensatz zum Delphi brauchst du hier keine zwei Jahre drauf warten, bis das eingebaut wird, sondern du kannst das selber machen und von heute auf morgen ins Lazarus einpflegen lassen. (beim Delphi kann man zwar einen QC erstellen, aber das dauert dann ein bissl, falls es überhaupt übernommen wird) |
AW: ProgressBar färben?
1. Guck mal auf das Datum. Mein Beitrag ist von 2007. Da gab es noch kein Windows 7.
2. Lies mal was unter meinem Code noch steht: "Funktioniert. Es muss an etwas anderem liegen. Vermutlich an dem vorhanden Manifest, wie Muetze schon gesagt hat. " 3. Theming (manifest) von Windows deaktivieren. Aber ich glaube, das wurde schon gesagt. :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz