Bonjour, la TProgressBar a 2 propriétés :
BackgroundColor et BarColor.
Je travaille avec RAD Studio XE2.
Ces 2 propriétés semblent n'avoir aucune action sur les couleurs de la TProgressBar.
Aurai-je oublié quelque chose ?
Merci de me dépanner.
Bonjour, la TProgressBar a 2 propriétés :
BackgroundColor et BarColor.
Je travaille avec RAD Studio XE2.
Ces 2 propriétés semblent n'avoir aucune action sur les couleurs de la TProgressBar.
Aurai-je oublié quelque chose ?
Merci de me dépanner.
Sur XP les Contrôles Windows ignorent très souvent les couleurs de fond, de fonte et autre au profit des couleurs du thème !
XE2 fourni un système de gestionnaire de style, il faudrait regarder comment il font pour redéfinir intégralement l'aspect des contrôles (on peut penser qu'il gère tous les message genre WM_PAINT, WM_NC_PAINT, WM_ERASEBACKGROUND...)
BarColor encapsule le message PBM_SETBARCOLOR
BackgroundColor encapsule le message PBM_SETBKCOLO
Et on peut lire dans le deux :
Même en mettant ParentBackground à false, astuce bien pratique pour colorer un TPanel, il y a peu de chance que cela fonctionneRemarks
When visual styles are enabled, this message has no effect.
As-tu l'exemple TGauge ?
Utilise là en Kind gkHorizontalBar, le code fourni est en Delphi (Vcl.Samples.Gauges.pas), tu as aussi la version CPP (..\RAD Studio\9.0\source\vcl\bcbsamples\cgauges.cpp) contenant le TCGauge
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Le "souvent" dépend effectivement des versions de windows à priori.
En C++ Builder 2010 j'ai testé
- un PC avec Win7 x64, la ProgressBar prend bien la bonne couleur ( vert pour moi )
- sous windows XP pro service pack 3 version US (ou Allemand je sais pas trop), la progressBar devient orange / rouge ( et pourtant installation OS toute simple sans aucune customisation ).
- sous un autre windows XP pro sans service pack, la bar apparait avec la bonne couleur.
Bref, personnellement j'ai remplacé la progressbar par 2 TImages, une petite astuce pour faire des trucs soignés et qui fonctionnent indépendamment de windows.
Timage1 -> l'image de fond de la progressBar à zéro
Timage2 -> l'image de la progressbar à 100%
et fais juste un Image2->Width = n*Image1->Width/100;
avec n ton avancement.
Bien sur il faut que Image1->Left = Image2->Left et Image1->Height = Image2->Height et mettre un affichage en doublebuffer histoire d''empecher les clignotements.
Ca marche bien et ça permet d'obtenir de chouettes graphismes![]()
Merci,
Le TGauge est parfait.
Il ajoute de plus le pourcentage de réalisation.
Partager