![]() |
ProgressBar Farbe lässt sich nicht ändern
Auf nen Button klick (bis jetzt ist das noch so*) soll die Farbe zweier Progress Bars geändert werden.
Aber irgendwie geht das nicht. Oder gibts da noch vllt ne andere Möglichkeit? Bis jetzt hab ich folgendes:
Delphi-Quellcode:
Andere Farben gehen auch nicht
uses CommCtrl;
procedure TfrmEinstellungen.btnPGBFarbeClick(Sender: TObject); begin frmMain.pbLeft.Perform(PBM_SETBARCOLOR, -1, clblue); frmMain.pbRight.Perform(PBM_SETBARCOLOR, -1, clblue); end;
Delphi-Quellcode:
---------------------------
clgreen
clorange clred clgreen clblack *soll später noch durch ne ComboBox bzw durch ne PaintBox geändert werden |
Re: ProgressBar Farbe lässt sich nicht ändern
die Progressbar nimmt doch die Farbe von ihrem Parent an oder liege ich jetzt völlig daneben?
|
Re: ProgressBar Farbe lässt sich nicht ändern
Hast du das XP-Manifest in dein Programm eingebunden?
|
Re: ProgressBar Farbe lässt sich nicht ändern
TProgressBar scheint gar keine Eigenschaft BarColor oder Color zu haben. Jedenfalls hab ich die hier (D2007) nicht gefunden. Man könnte aber TGauge nehmen, da kann man die Farben nach Belieben ändern.
|
Re: ProgressBar Farbe lässt sich nicht ändern
Zitat:
Zitat:
|
Re: ProgressBar Farbe lässt sich nicht ändern
Bei den Schweizern (swissdelphicenter.ch) gibts ein Code wie man eine Progressbar farbig bekommt...
|
Re: ProgressBar Farbe lässt sich nicht ändern
mit Hilfe von SwissDelphiCenter bin ich nun auf folgenden Code bekommen
Delphi-Quellcode:
Allerdings scheint der auch nicht wirklich zu funtkionieren?!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); |
Re: ProgressBar Farbe lässt sich nicht ändern
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.
|
Re: ProgressBar Farbe lässt sich nicht ändern
Gerade getestet:
Delphi-Quellcode:
Funktioniert. Es muss an etwas anderem liegen. Vermutlich an dem vorhanden Manifest, wie Muetze schon gesagt hat.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, commctrl; type TForm1 = class(TForm) ProgressBar1: TProgressBar; procedure FormPaint(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); begin SendMessage(Progressbar1.Handle, PBM_SETBARCOLOR, 0, clRed); end; end. |
Re: ProgressBar Farbe lässt sich nicht ändern
Hm ich werd da nochmal schauen.
Aber danke euch erstmal ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 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