Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   ProgressBar färben? (https://www.delphipraxis.net/185565-progressbar-faerben.html)

AlexII 20. Jun 2015 12:42

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:
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, '', '');
Bin für jede Hilfe dankbar!

Daniel 20. Jun 2015 12:54

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.

Der schöne Günther 20. Jun 2015 13:00

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);
}

AlexII 20. Jun 2015 13:02

AW: ProgressBar färben?
 
Zitat:

Zitat von Daniel (Beitrag 1305881)
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.

Heißt das, dass durch Statusänderung auch die Farbe geändert wird? Wie ändert man den Status?

Übrigens der von mir gezeigte Code funktioniert laut Quellen bei vielen Usern, bei mir aber nicht. Liegt wohl am Lazarus nehme ich an.

Sir Rufo 20. Jun 2015 13:16

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:

AlexII 20. Jun 2015 13:29

AW: ProgressBar färben?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1305886)
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:

Es MUSS auch anders gehen, zig User schreiben das! Z.B. hier, von Luckie persönlich -> http://www.delphipraxis.net/714479-post9.html

Oder war es nicht für Windows >= 7?

mkinzler 20. Jun 2015 13:31

AW: ProgressBar färben?
 
Theming bedeutet: Windows soll entscheiden¡

Der schöne Günther 20. Jun 2015 13:36

AW: ProgressBar färben?
 
Zitat:

Zitat von AlexII (Beitrag 1305892)
zig User schreiben das! Z.B. hier, von Luckie persönlich -> http://www.delphipraxis.net/714479-post9.html?

Alternativ könntest du dort noch eine Seite weiter blättern und lesen dass man...

...


... das Theming abschalten muss. 8-)

AlexII 20. Jun 2015 13:44

AW: ProgressBar färben?
 
Hm... ok... muss es dann so akzeptieren. Danke euch!

Aviator 20. Jun 2015 15:53

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz