IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Couleurs d'une TProgressBar


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut Couleurs d'une TProgressBar
    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.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 621
    Points : 25 321
    Points
    25 321
    Par défaut
    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 :

    Remarks
    When visual styles are enabled, this message has no effect.
    Même en mettant ParentBackground à false, astuce bien pratique pour colorer un TPanel, il y a peu de chance que cela fonctionne

    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

  3. #3
    Membre actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Points : 245
    Points
    245
    Par défaut
    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

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Merci,
    Le TGauge est parfait.
    Il ajoute de plus le pourcentage de réalisation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  2. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50
  3. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/03/2003, 17h02
  4. Réponses: 9
    Dernier message: 12/08/2002, 07h38
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo