![]() |
Progressbar färben unter XP Luna?
Hallo,
Ich habe bislang eine Progressbar mit folgendem Code gefärbt:
Delphi-Quellcode:
Nun musste ich feststellen das dieses mit XP-Luna nicht mehr funktioniert, nur mit XP classic.
SendMessage(ThpwProgressBar( ProgressList.Items[Found] ).Handle, BAR_CONST, 0, GetColor(bgcolor));
Hat jemand einen Tip mit dem das auch unter Luna funktioniert? |
Moinsen!
Hab vor kurzem noch gelesen das man die Farbe des Brushes einer TProgressBar ändern kann um die andere Farbe zu erhalten, schau mal auf ![]() |
Ja da steht dieser code:
Delphi-Quellcode:
uses
CommCtrl; procedure TForm1.Button1Click(Sender: TObject); begin // Set the Background color to teal Progressbar1.Brush.Color := clTeal; // Set bar color to yellow SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, clYellow); end; Aber was steckt hinter der Konstanten PBM_SETBARCOLOR? Ich hatte bislang: BAR_CONST = $0409; |
Einen Blick in die msdn:
![]() Meines Wissens ist das eine Nachricht die Windows mitteilt, das sich die Farbe deiner ProgressBar geändert hat bzw. das Windows die Farbe ändert, darauf dürfte das hinaus laufen. |
Genau das benutze ich ja, aber leider funktioniert das auf allen Plattformen ausser XP luna. Das kann aber doch nicht an delphi 5 liegen?
|
Ich glaube das läuft nicht unter XP :?: Denn in der Msdn steht:
Zitat:
|
Wieso da steht doch Minimum und nicht ausschliesslich!
Und XP classic geht ja auch! |
Zitat:
bei XP Classic ist das noch die 5.x. Die werden ganz anders gezeichnet. Ob jetzt aber ein einfärben unter Luna möglich ist ?? |
Wahrscheinlich nicht, weil der Progressbar dann faktisch eine Bitmap aus dem jeweiligen Theme-File ist.
Oder sagen wir so: vielleicht wird er gefärbt. Man sieht´s nur nicht, weil die Bitmap drüber liegt. |
Schöne neue Welt von M$ Luna :-((
Da kann man dann wohl nicht viel machen. |
Ich wusste das die Skins nicht nur was gutes haben (Geil aussehen, einer der Hauptgründe warum ich zu XP wechseln würde), sondern es auch irgend einen nachteil gibt *hrhr*
|
Oder du programmierst dir eine eigene ProgressBar-Kompo.
Da kannste dann Farbe und Aussehen selbst festlegen. |
Re: Progressbar färben unter XP Luna?
also bei mir (XP, normales XP Theme, Silver Style) funktioniert das mit dem Farbe ändern
Delphi-Quellcode:
Fragt mich aber nicht warum?
SendMessage(ProgressBar1.Handle, $0409, 0, clred);
v.a. weil im msdn ja Zitat:
mfg GSE |
Re: Progressbar färben unter XP Luna?
Tja, dann bist du entweder ein Genie (gehe ich mal davon aus ;)), oder dein Windows XP ist eine Sonder-Edition, oder jemand hier (:roll: ;)) hat nicht gesehen, dass das bereits erwähnt wurde, dass es unter XP nur Sinn im Klassik-Modus macht.
Wie gesagt, bei aktiven Themes kommt der Progressbar aus der Theme-Ressource und ist nur eine Bitmap. Und ich wüsste nicht, dass man mit PBM_SETBARCOLOR
Code:
(soviel zum Thema "$409" ;)) die Pixelfarbe von Bitmaps beeinflussen kann.
#define WM_USER 0x0400
#define PBM_SETBARCOLOR (WM_USER+9) Also, dann sprichst du bei Zitat:
|
Re: Progressbar färben unter XP Luna?
Zitat:
Zitat:
mfg GSE |
Re: Progressbar färben unter XP Luna?
Ja, dann bist du wohl ein Genie. *aufdiekniefallundanbet* :mrgreen:
Mach doch mal ein Beweisfoto. Meine Vermutung ist, dass dein Programm kein Manifest benutzt. Und daher haben Buttons, Edit-Controls und eben auch Progressbars noch den alten Stil, und letzterer dürfte sich auch ohne Probleme einfärben lassen. Am I right? So I guess, it's my part to be the genius. :stupid: |
Re: Progressbar färben unter XP Luna?
Code:
das war doch aber nie die Bedingung, oder? :oops:
dass dein Programm kein Manifest benutzt
Es ging nur darum eine Progressbar unter XP zu Färben :mrgreen: mfg GSE |
Re: Progressbar färben unter XP Luna?
The one, who can read, is clear im Vorteil (@
![]() @GSE, schau mal auf Seite Eins: Zitat:
|
Re: Progressbar färben unter XP Luna?
(etwas Offtopic...)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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