Grâce à la précieuse aide de Bloon, j'ai fini par mettre en place ce petit code :
Ca fait nikel ce que je veux puisque chaque cellule du DBGRID prend la couleur correspondante à la valeur qu'elle contient.
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;
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
Partager