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

Bases de données Delphi Discussion :

Integer ou string dans une DBGRID


Sujet :

Bases de données Delphi

  1. #1
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut Integer ou string dans une DBGRID
    Grâce à la précieuse aide de Bloon, j'ai fini par mettre en place ce petit 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
     
       procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      If gdSelected In State Then
      Begin
    {défini la couleur de la cellule active }
    TDBGrid(Sender).Canvas.Brush.Color := clSilver
      End Else
      Begin
    {défini les couleurs des cellules suivant leur valeur}
    if Column.Field.AsInteger = 1 then TDBGrid(Sender).Canvas.Brush.Color := clfuchsia
    else
    if Column.Field.AsInteger = 2 then TDBGrid(Sender).Canvas.Brush.Color := clyellow
    else
    {défini la couleur de la cellule qui n'a pas de valeur}
    TDBGrid(Sender).Canvas.Brush.Color := clWhite;
      End;
    {redessine le DBGrid en tenant compte des couleurs}
      TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state);
    end;
    Ca fait nikel ce que je veux puisque chaque cellule du DBGRID prend la couleur correspondante à la valeur qu'elle contient.

    Seulement voila, il se peut que parfois dans une de mes collones j'ai une valeur qui n'est pas un Integer --> cela provoque une erreur --> je voudrais que quand le PRG rencontre autre chose qu'un integer il fasse comme si c'était la valeur 0.

    Ou alors je voudrais pouvoir dire au programme au lieu de tester tout le DBGRID de tester juste les collones de 6 à 9 dans lesquelles je suis sur qu'il n'y a que des INTEGER et pas les 5 premières ou je sais qu'il y a des strings

  2. #2
    Membre régulier Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 111
    Points
    111
    Par défaut
    Salut,

    Il faut simplement tester l'index de la colonne :
    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
    TDBGrid(Sender).Canvas.Brush.Color := clBtnFace   //** clSilver
      End Else 
    //** ceci :
      if Column.Field.DataType = ftInteger then
    //** ou alors cela :
      if Column.Index < 5 then 
      Begin 
        {défini les couleurs des cellules suivant leur valeur} 
        if Column.Field.AsInteger = 1 then TDBGrid(Sender).Canvas.Brush.Color := clfuchsia 
        else 
        if Column.Field.AsInteger = 2 then TDBGrid(Sender).Canvas.Brush.Color := clyellow 
        else 
          {défini la couleur de la cellule qui n'a pas de valeur} 
          TDBGrid(Sender).Canvas.Brush.Color := clWhite; 
      End//** autrement :
      else
        TDBGrid(Sender).Canvas.Brush.Color := clWindow; //**  clWhite; 
    {redessine le DBGrid en tenant compte des couleurs}
    A+
    On ne me la fait pas à moi !

  3. #3
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut

    Evite de poster la même question sur tous forums
    7 fois à terre, 8 fois debout

  4. #4
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut Double emploi
    Une question comme celle ci est elle Delpho simple ou BD ?

  5. #5
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Il s'agit d'une question Delphi+BD puisque les DBGrids sont des composants orientés données
    7 fois à terre, 8 fois debout

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

Discussions similaires

  1. Paradox 7 Comment trier et marquer données dans une DBgrid
    Par technico dans le forum Bases de données
    Réponses: 12
    Dernier message: 04/07/2004, 11h08
  2. Sélectionner une ligne dans une DBGrid
    Par RBIK dans le forum Bases de données
    Réponses: 13
    Dernier message: 01/07/2004, 17h13
  3. ecrire manuellement dans une dbgrid
    Par neness dans le forum Bases de données
    Réponses: 4
    Dernier message: 16/06/2004, 11h14
  4. Données dans une DBgrid
    Par camino dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/02/2004, 03h40
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

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