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 des cellules dans une StringGrid


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut Couleur des cellules dans une StringGrid
    Bonjour,
    Je me suis aidé de ce que j'ai trouvé déjà sur ce forum pour colorier des cellules d'une StringGrid et j'ai pondu ce code :

    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
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
     
    for(int i=1;i<Form1->StringGrid1->ColCount;i++)
    {
     
      if (StringGrid1->Cells[1][i]!="")
      {
      StringGrid1->Canvas->Font->Color=clYellow;
      StringGrid1->Canvas->Brush->Color=clGray;
      }
    }
     
     
    }

    Ce que je cherche à faire : je test si la cellule [1][1], [1][2], [1][3] ect jusqu'au nombre de colonne est vide ou pas ( s'il y a du texte ).

    Si par exemple [1][1] n'est pas vide , je voudrais que toute la ligne soit en couleur clGray
    pareil pour 2,3 ect ...
    quelqu'un peut m'aider à finir ce code ou m'aiguiller ?
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    Salut

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
     
     
     
    for(int i=0;i<Form1->StringGrid1->RowCount;i++)
    {
     
      if (StringGrid1->Cells[0][i].Length() >0 )
      {
     
         for(int j=0;j<Form1->StringGrid1->ColCount;j++)
           {
            AnsiString s = StringGrid1->Cells[j][i];
            Rect=StringGrid1->CellRect(j,i);
     
     
            //Réécrit le texte de la cellule en haut et à gauche.
            StringGrid1->Canvas->TextRect(Rect,Rect.Left, Rect.Top,s);
     
            //Remplissage de la cellule par la couleur desirée.
            StringGrid1->Canvas->Brush->Color = clGray;
     
     
            //Tracé de la bordure de la cellule dans la couleur desirée si nécessaire.
            StringGrid1->Canvas->FrameRect(Rect);   // Bordure.
          }
      }
    }
     
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Hum , j'avais fait ça dans un autre truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (StringGrid1->Cells[1][1]!=""){StringGrid1->Cells[0][1]="1";}
    et ça marchait parfaitement sans le Length()....

    Mon truc compile en fait, pas d'erreur , mais il colore rien , je comprend pas trop pourquoi, quelqu'un a une idée ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    Regardes au dessus j ai edité

    Il te manquait une boucle

    et tu precisais pas où redessinner

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    C'est exactement ce que je voulais, j'ai compris mon erreur, merci!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/09/2009, 14h08
  2. [D7] Couleur des cellules d'un StringGrid
    Par raoulmania dans le forum Composants VCL
    Réponses: 5
    Dernier message: 15/12/2005, 15h39
  3. Positionner des cellules dans une page
    Par BBe8127 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2005, 10h25
  4. Insérer des lignes dans une StringGrid
    Par da_latifa dans le forum Composants VCL
    Réponses: 1
    Dernier message: 26/09/2005, 12h45
  5. Ne rentrer que des chiffes dans une stringgrid
    Par rvzip64 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/08/2005, 11h06

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