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 :

Colorier le fond des cellules d'une stringrid


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut Colorier le fond des cellules d'une stringrid
    Bonjour,
    Je souhaite remplir les cellules d'une stringgrid avec différentes couleurs en fonctions des résultats d'une requête.
    J'ai vu une idée sur la FAQ, mais elle ne me convient pas complétement car elle utilise OnDrawCell, et ça ne m'intéresse pas car ça me semble lourd à traiter avec mes requêtes.
    J'ai fait quelques essais avec ça :
    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
     
             Grille_AfficheDispo->Canvas->Brush->Color = Vert;
     
             for (Ligne = 1; Ligne < Grille_AfficheDispo->RowCount; Ligne++)
             {
     
                for (Colonne = 1; Colonne < Grille_AfficheDispo->ColCount;
                     Colonne++)
                {
     
                   Coordonnees.Left = Colonne;
                   Coordonnees.Right = Colonne + 200;
                   Coordonnees.Top = Ligne;
                   Coordonnees.Bottom = Ligne + 200;
     
                   Grille_AfficheDispo->Canvas->FillRect(Coordonnees);
     
                }
     
             }
    mais ça ne remplit que la première case et pas les autre .

    Merci d'avance de votre aide.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       StringGrid1->Canvas->Brush->Color = clGreen;
     
       for (int Ligne = 1; Ligne < StringGrid1->RowCount; Ligne++)
       {
          for (int Colonne = 1; Colonne < StringGrid1->ColCount; Colonne++)
          {
             StringGrid1->Canvas->FillRect(StringGrid1->CellRect(Ligne, Colonne));
          }
       }
    Cordialement
    Eric

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    Question posée à 18h47 résolue à 18h56 .

    Vraiment efficace ce forum.


    Encore Merci pour tout.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    En fait, il y a un pautre problème qui se pose.
    L'affectation se passe très bien avec la méthode que tu as proposée, mais quand mon tableau est redéssiné, ça éfface tout ce que j'ai fait pour remettre les couleurs standard.
    Y aurait-il un autre moyen que OnDrawCell pour faire ça?
    C'est pas que je ne veux pas l'utiliser, mais je crains de consommer beaucoup de temps sur chaque appel à OnDrawCell, car je devrai y mettre des requêtes Sql .

    Merci encore des précèdents conseils.

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    J'ai bien peur qu'il ne soit nécessaire de passer par OnDrawCell.
    Tu ne peux pas séparer la mise en forme dans le OnDrawCell de tes traitements SQL ? En sauvegardant par exemple dans un objet les informations suffisantes pour redessiner tes cellules sans refaire une requête. Cet objet serait ainsi initialisé/modifié uniquement lorsque la consultation de la base de données est nécessaire.

    Eric

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    Oui, en effet, je peux faire un tableau qui contiendrait le code de la couleur a affecter.
    Ca sera effectivement plus simple et moins couteux

    Merci beaucoup de ton aide.

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut OnDrawCell Exemple par Damon Chandler (ancien TeamB)
    Voici un lien avec l'exemple et explications en anglais comment utiliser le OnDrawCell

    http://www.bcbjournal.org/bcbcaq/CAQs/caq48.htm

    Je te conseil de faire un lien a cette page et d'explorer les exemples fournis parce que Damon est vraiement incroyable. Quand j'ai decouvert cette page, ma comprehension du VCL et de Builder ont vraiement augmenter en fleche

    Bonne Chance


    CheGueVerra

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    Merci pour l'info
    C'est exactement le genre de chose qu'il me faut également.


    Merci encore.

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

Discussions similaires

  1. [XL-2000] compter des cellules avec une couleur de fond et une couleur de police
    Par darkvadave dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/11/2011, 16h36
  2. [QtGui] Couleur de fond des cellules d'une QTableView
    Par atalon1 dans le forum PyQt
    Réponses: 3
    Dernier message: 13/10/2010, 17h50
  3. Réponses: 4
    Dernier message: 17/03/2008, 11h03
  4. Surligner des cellules d'une JTable
    Par bfb dans le forum Composants
    Réponses: 1
    Dernier message: 06/01/2006, 18h53
  5. Positionner des cellules dans une page
    Par BBe8127 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2005, 10h25

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