Delphi-PRAXiS

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 färben unter XP Luna? (https://www.delphipraxis.net/3210-progressbar-faerben-unter-xp-luna.html)

HPW 28. Feb 2003 19:04


Progressbar färben unter XP Luna?
 
Hallo,

Ich habe bislang eine Progressbar mit folgendem Code gefärbt:

Delphi-Quellcode:
SendMessage(ThpwProgressBar( ProgressList.Items[Found] ).Handle, BAR_CONST, 0, GetColor(bgcolor));
Nun musste ich feststellen das dieses mit XP-Luna nicht mehr funktioniert, nur mit XP classic.

Hat jemand einen Tip mit dem das auch unter Luna funktioniert?

phlux 28. Feb 2003 19:06

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 www.swissdelphicenter.ch vorbei da stand das glaub ich.

HPW 28. Feb 2003 19:30

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;

phlux 28. Feb 2003 19:43

Einen Blick in die msdn:
http://msdn.microsoft.com/library/de...etbarcolor.asp
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.

HPW 1. Mär 2003 07:48

Genau das benutze ich ja, aber leider funktioniert das auf allen Plattformen ausser XP luna. Das kann aber doch nicht an delphi 5 liegen?

phlux 1. Mär 2003 09:42

Ich glaube das läuft nicht unter XP :?: Denn in der Msdn steht:
Zitat:

Minimum operating systems: Windows 2000, Windows NT 4.0 with Internet Explorer 4.0, Windows 98, Windows 95 with Internet Explorer 4.0

HPW 1. Mär 2003 11:31

Wieso da steht doch Minimum und nicht ausschliesslich!
Und XP classic geht ja auch!

Marco Haffner 1. Mär 2003 12:31

Zitat:

Zitat von HPW
Und XP classic geht ja auch!

Für XP Luna werden die Common Controls in der Version 6.0 verwendet,
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 ??

MathiasSimmack 1. Mär 2003 19:08

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.

HPW 3. Mär 2003 21:04

Schöne neue Welt von M$ Luna :-((

Da kann man dann wohl nicht viel machen.

phlux 3. Mär 2003 21:26

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*

Marco Haffner 3. Mär 2003 21:27

Oder du programmierst dir eine eigene ProgressBar-Kompo.
Da kannste dann Farbe und Aussehen selbst festlegen.

GSE 19. Aug 2004 09:30

Re: Progressbar färben unter XP Luna?
 
also bei mir (XP, normales XP Theme, Silver Style) funktioniert das mit dem Farbe ändern
Delphi-Quellcode:
SendMessage(ProgressBar1.Handle, $0409, 0, clred);
Fragt mich aber nicht warum?

v.a. weil im msdn ja
Zitat:

This message is supported only in the Windows Classic theme
steht. :roteyes:

mfg
GSE

MathiasSimmack 19. Aug 2004 09:40

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:
#define WM_USER                0x0400
#define PBM_SETBARCOLOR        (WM_USER+9)
(soviel zum Thema "$409" ;)) die Pixelfarbe von Bitmaps beeinflussen kann.


Also, dann sprichst du bei
Zitat:

Zitat von GSE
(XP, normales XP Theme, Silver Style)

nicht vom LUNA-Silber, sondern vom klassischen Design. Und damit wäre ich wieder beim Ausgangspunkt: Dass es unter XP Classik geht, wurde schon erwähnt. *g* Na ja, manche brauchen eben ein Jahr um so was herauszufinden. :mrgreen:

GSE 19. Aug 2004 12:36

Re: Progressbar färben unter XP Luna?
 
Zitat:

nicht vom LUNA-Silber, sondern vom klassischen Design.
tue ich das? ich meinte damit das Theme: Windows XP (Luna) und Farbschema Silver. und seit wann ist das klassische design silbern?

Zitat:

Na ja, manche brauchen eben ein Jahr um so was herauszufinden.
und dass das topic noch von letztem jahr ist, hab ich zu spät gemerk (bin über google hergekommen)

mfg
GSE

MathiasSimmack 19. Aug 2004 12:40

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:

GSE 19. Aug 2004 16:11

Re: Progressbar färben unter XP Luna?
 
Code:
dass dein Programm kein Manifest benutzt
das war doch aber nie die Bedingung, oder? :oops:

Es ging nur darum eine Progressbar unter XP zu Färben :mrgreen:

mfg
GSE

MathiasSimmack 19. Aug 2004 18:55

Re: Progressbar färben unter XP Luna?
 
The one, who can read, is clear im Vorteil (@Hansa: :mrgreen:)

@GSE, schau mal auf Seite Eins:
Zitat:

Zitat von HPW
Nun musste ich feststellen das dieses mit XP-Luna nicht mehr funktioniert, nur mit XP classic.

XP-Luna bedeutet allgemein, dass das Programm ein Manifest benutzt, damit sich die Controls im jeweiligen XP-Stil darstellen. Ansonsten hast du natürlich recht. Ich sag ja: Du bist ein Genie. ;)

Phoenix 19. Aug 2004 20:11

Re: Progressbar färben unter XP Luna?
 
(etwas Offtopic...)
Zitat:

Zitat von MathiasSimmack
The one, who can read, is clear im Vorteil

It's runnung me ice cold the back down... :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

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