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 :

Dessiner une ligne de DBGrid suivant critères


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 39
    Points : 48
    Points
    48
    Par défaut Dessiner une ligne de DBGrid suivant critères
    Bonjour,
    Je voudrais à l'éxécution que les lignes d'un DBGrid aient une couleur vairable suivant la valeur qu'elles contiennent .
    J'arrive à changer la couleur de toute une colonne mais pas celle d'une cellule
    ou d'une ligne spécifique (la ligne complète serait ok). J'ai trouvé des soluces en delphi mais je n'arrive pas à les transposer

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Salut,
    Un bout de 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    TCanvas *pCanvas = ((TDBGrid *)Sender)->Canvas;
    if ((P.Y%2)==0)pCanvas->Brush->Color = clYellow;
     
    if (Form1->DBGrid1->DataSource->DataSet->FieldByName("Rang")->Value == 2)
    {
    Form1->DBGrid1->Canvas->Brush->Color = clGreen;
    }
            if(State.Contains(odSelected))  //ligne selectionnée
                           {
                            pCanvas->Brush->Color = clRed;
                            pCanvas->FillRect(Rect);
                            pCanvas->Font->Color = clYellow;
                            if (Form1->DBGrid1->DataSource->DataSet->FieldByName("Rang")->Value == 2)
                            {
                            Form1->DBGrid1->Canvas->Font->Style = TFontStyles() << fsBold;
                            Form1->DBGrid1->Canvas->Font->Color = clRed;
                            }
                           }
            else
            {
                    if (Form1->DBGrid1->DataSource->DataSet->FieldByName("Rang")->Value == 2)
                    {
                    Form1->DBGrid1->Canvas->Font->Style = TFontStyles() << fsBold;
                    Form1->DBGrid1->Canvas->Font->Color = clRed;
                    }
                    pCanvas->FillRect(Rect);  //Les autres lignes
            }
     
    switch (DataCol)
    {
    case (0):
    Column->Alignment = taRightJustify;
    break;
    case (1):
    Column->Alignment = taCenter;
    break;
    }
    a réadapter en fonction de tes besoins...
    @ +

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 39
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup. Je vais adapter et tester. En attendant je considère la question comme résolue.

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Alerte !!

    J'ai encore fais une boulette en postant cette réponse....
    Ben ouais, j'ai oublié une ligne ! Et évidemment, personne ne dis rien et a mon avis il est pas prêt de marcher le code si on sait pas a quoi 'P' correspond...
    Il faut aujouter, juste avant le premier if(...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TGridCoord P = Form1->DBGrid1->MouseCoord(Rect.left,Rect.top);
    Mille excuses sir nbutin, en espérant que tu repasses un jour par la...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/01/2010, 11h08
  2. Comment dessiner une ligne dans un Chart ?
    Par libititi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2005, 14h56
  3. [Image]Dessiner une ligne en dynamique
    Par Bugmaster dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 02/08/2004, 11h56
  4. Dessiner une ligne
    Par Bugmaster dans le forum 2D
    Réponses: 6
    Dernier message: 29/07/2004, 08h36
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 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