Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ProgressBar Farbe lässt sich nicht ändern (https://www.delphipraxis.net/105052-progressbar-farbe-laesst-sich-nicht-aendern.html)

Die Muhkuh 15. Dez 2007 07:07

Re: ProgressBar Farbe lässt sich nicht ändern
 
Zitat:

Zitat von BullsEye
Hm ich werd da nochmal schauen.
Aber danke euch erstmal ;)

Alternativ kannst Du, wie schon erwähnt, eine TGauge verwenden, die kannst Du farblich anpassen.

bitsetter 15. Dez 2007 07:44

Re: ProgressBar Farbe lässt sich nicht ändern
 
Zitat:

Zitat von Muetze1
Wenn du das XP Manifest nutzt, dann wird das Theme verwendet, sprich: Der ProgressBar wird von Windows anhand des Themes gezeichnet. Somit musst du dir entweder selber einen Progressbar schreiben bzw. komplett einen Balken selber malen.

Hallo,

oder mit
Delphi-Quellcode:
uses uxTheme;

  if uxTheme.IsThemeActive then
    uxTheme.SetWindowTheme(Progressbar1.Handle, '', '');
das Theme für die Progressbar abschalten.

BullsEye 15. Dez 2007 18:27

Re: ProgressBar Farbe lässt sich nicht ändern
 
Delphi-Quellcode:
uses uxTheme, commctrl;

procedure TfrmEinstellungen.btnFarbeClick(Sender: TObject);
begin
  if uxTheme.IsThemeActive then
    uxTheme.SetWindowTheme(frmMain.pbLeft.Handle, '', '');
    uxTheme.SetWindowTheme(frmMain.pbRight.Handle, '', '');
  frmMain.pbLeft.Brush.color := clTeal;
  SendMessage(frmMain.pbLeft.Handle, PBM_SETBARCOLOR, 0, clblue);
  frmMain.pbRight.Brush.color := clTeal;
  SendMessage(frmMain.pbRight.Handle, PBM_SETBARCOLOR, 0, clblue);
end;
So gehts!!
Danke dir bitsetter!!!

DeddyH 15. Dez 2007 18:30

Re: ProgressBar Farbe lässt sich nicht ändern
 
Fehlt da nicht ein begin...end?

dominikkv 15. Dez 2007 18:32

Re: ProgressBar Farbe lässt sich nicht ändern
 
Zitat:

Zitat von BullsEye
Delphi-Quellcode:
uses uxTheme, commctrl;

procedure TfrmEinstellungen.btnFarbeClick(Sender: TObject);
begin
  if uxTheme.IsThemeActive then
    uxTheme.SetWindowTheme(frmMain.pbLeft.Handle, '', '');
    uxTheme.SetWindowTheme(frmMain.pbRight.Handle, '', '');
  frmMain.pbLeft.Brush.color := clTeal;
  SendMessage(frmMain.pbLeft.Handle, PBM_SETBARCOLOR, 0, clblue);
  frmMain.pbRight.Brush.color := clTeal;
  SendMessage(frmMain.pbRight.Handle, PBM_SETBARCOLOR, 0, clblue);
end;
So gehts!!
Danke dir bitsetter!!!

fehlt da nicht ein begin..end?
edit: lol...genau der gleiche wortlaut xD

DeddyH 15. Dez 2007 18:39

Re: ProgressBar Farbe lässt sich nicht ändern
 
:lol: XD

BullsEye 16. Dez 2007 02:06

Re: ProgressBar Farbe lässt sich nicht ändern
 
nunja, das mag sein aber es läuft ersteinmal, und das ist das wichtigste^^
Aber ich glaube wenn wir nur einen Fall haben ist ein Begin & End unwichtig oder?

xZise 16. Dez 2007 08:44

Re: ProgressBar Farbe lässt sich nicht ändern
 
Naja...
Das ist fast so als würdest du sagen:
Delphi-Quellcode:
if MyObject.IstApfel then
  MyObject.Form := Rund;
  MyObject.Color := clRed;
Ergebnis:
Egal, was MyObject ist, er wäre immer rot!
Delphi kann ja nicht wissen, was er alles machen soll, wenn die Bedingung erfüllt ist.
Ein Beispiel:
Delphi-Quellcode:
if myObject.IstApfel then
MyObject.Form := Rund;
MyObject.Color := clRed;
if myObject.IstLebensmittel then
myObject.Essen;
Was soll er machen, wenn "IstApfel" und "IstLebensmittel" wahr sind?
Was, wenn nur "IstLebensmittel" wahr ist?
Und was wenn gar nichts wahr ist xD?

Und Einrückungen zählen nicht ;) Die ignoriert der Compiler!

Zwar funktioniert es so, aber die zweite ProgressBar hat nie einen Skin.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.
Seite 2 von 2     12   

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