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 :

Couleur d'une progressBar [FAQ]


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par d�faut Couleur d'une progressBar
    Salut

    j'utilise une progressBar dans mon application. Le probleme, c'est que j'aimerais bien changer la couleur de rmplissage, (avec FILLCOLOR), mais jarrive pas a l'utilser!
    QQ1 pour m'expliquer SVP?

    merci

    jul

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 268
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 268
    Par d�faut
    CLX ou VCL???

    A premi�re vue (dans ce cas l�, l'aide de Builder), la propri�t� FillColor n'existe pas avec la VCL.

    Sinon, avec la CLX, il suffit de changer la valeur comme pour toute propri�t� TColor

    S'il y a une autre m�thode, je ne la connais pas.

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par d�faut
    je sais pas ce que veux dire CLX ou VCL.

    Mais quand je creer un TProgressBar (composant en barre d'outil), je n'ai pas acces a la propriete de couleur!

  4. #4
    Expert confirm� Avatar de Cybher
    Homme Profil pro
    Consultant r�seaux et s�curit�
    Inscrit en
    Mai 2005
    Messages
    3 281
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant r�seaux et s�curit�
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 268
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 268
    Par d�faut
    Citation Envoy� par cquadjul
    je sais pas ce que veux dire CLX ou VCL.

    Mais quand je creer un TProgressBar (composant en barre d'outil), je n'ai pas acces a la propriete de couleur!
    VCL = composants standards de Builder tir�s de Delphi
    CLX = composants de Builder utilis�s avec Kylix pour du Dev sous Linux.

    Si tu n'as pas acc�s � cette propri�t� (FillColor), �a signifie que tu utilises la VCL.

  6. #6
    Membre Expert
    Avatar de Gilles Lou�se
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par d�faut
    Apparemment vous travaillez en CLX car en VCL classique il n'y a pas la propri�t� FillColor.

    Quand vous faites Fichier->Nouveau, vous avez le choix entre Application tout court avec la VCL (Visual Componant Library) ou Application CLX.

    En principe, si vous cliquez sur FillColor, vous avez le choix de la couleur de remplissage, j'ai essay�, �a marche parfaitement.

    � bient�t
    Gilles

  7. #7
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par d�faut
    ok, ba merci qd meme!

    si qq1 a une methode pour la VCL?

  8. #8
    Membre Expert
    Avatar de Gilles Lou�se
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par d�faut
    Il semble que ce soit impossible en VCL, vous pouvez seulement changer la couleur de fond e.g.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ProgressBar1->Brush->Color=clRed;
    mais vous ne pouvez pas modifier le bleu fonc� de remplissage choisi par d�faut.

    � la limite, �a ne doit pas �tre tr�s difficile la programmer mais le jeu en vaut-il la chandelle comme on dit?

    � bient�t
    Gilles

  9. #9
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par d�faut
    ok, merci bcp

    bien sur, c'est pas sa qui va changer la performance de mon programme, mais c'etait juste pour savoir comment faire (et si c'etait possible)

    merci

    @+

    jul

  10. #10
    Membre Expert
    Avatar de Gilles Lou�se
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par d�faut
    Citation Envoy� par cquadjul
    c'etait juste pour savoir comment faire (et si c'etait possible)
    Tout est toujours possible mais parfois par des voies d�tourn�es.

    D�clarez dans la classe principale la fonction de remplissage.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    void __fastcall PaintPB(TProgressBar*);
    Juste apr�s avoir modifi� la position du ProgressBar, vous appelez la fonction par exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    ProgressBar1->Position+=10;
    PaintPB(ProgressBar1);
    La fonction en elle-m�me peut se programmer ainsi.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void __fastcall TForm1::PaintPB(TProgressBar* PB)
    {
    HDC deskTopDC;
    deskTopDC = GetWindowDC(GetDesktopWindow()) ;
    int i,j,x,y;
     
    int BG,BD;
     
    for(i=0;i<PB->Width-2;i++)
       for(j=0;j<PB->Height-2;j++)
          {
          x=i+PB->Left+Form1->Left+5;
          y=j+PB->Top+Form1->Top+31;
          if(GetPixel(deskTopDC,x,y)!=PB->Brush->Color)
          SetPixel(deskTopDC,x,y,clAqua);
          }
    }
    Notez qu'on ne peut pas passer par le canvas de Form1 qui ne donne que du noir, on triche en allant lire directement l'�cran. Je n'ai pas trouv� le moyen de savoir les coordonn�es r�elles du progressBar, j'ajuste en ajoutant 5 en x et 31 en Y qui doivent correspondre aux bordures par d�faut. �a aurait �t� plus propre de trouver les coordonn�es avec des vraies variables.

    � bient�t
    Gilles

  11. #11
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par d�faut
    Merci beaucoup GILLES, sa marche tres bien!!!

    a bientot

    jul

  12. #12
    CGi
    CGi est d�connect�
    Expert confirm�
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    D�tails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    SendMessage(ProgressBar1->Handle, PBM_SETBARCOLOR, 0, clRed);
    C'est ici.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)

  13. #13
    Invit� de passage
    Inscrit en
    Juillet 2005
    Messages
    1
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 1
    Par d�faut
    Ah yes!!! merci bcp!!!
    ++

  14. #14
    Membre Expert
    Avatar de Gilles Lou�se
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par d�faut
    Citation Envoy� par CGi
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    SendMessage(ProgressBar1->Handle, PBM_SETBARCOLOR, 0, clRed);
    Bravo CGi, �a ne s'invente pas.

    J'ai encore d�gain� mon code de d�pannage trop vite.

    Merci encore � vous et � bient�t
    Gilles

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Changer la couleur d'une ProgressBar
    Par thibab dans le forum VB.NET
    R�ponses: 20
    Dernier message: 30/12/2013, 10h50
  2. Couleur par d�faut d'une ProgressBar ?
    Par Thyx5 dans le forum Android
    R�ponses: 11
    Dernier message: 05/04/2012, 08h50
  3. Modifier la couleur d'une ProgressBar
    Par xav2303 dans le forum Windows Forms
    R�ponses: 10
    Dernier message: 23/06/2009, 19h18
  4. Changer la couleur d'une ProgressBar
    Par Kemanke dans le forum C++/CLI
    R�ponses: 5
    Dernier message: 28/04/2009, 09h44
  5. changer la couleur d'une ProgressBar
    Par a_lincoln54 dans le forum C++Builder
    R�ponses: 4
    Dernier message: 03/11/2008, 03h38

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