Bonjour à toutes et à tous.

Voila, j'ai un DBGrid qui m'affiche plusieurs lignes, sur chacune d'elles, on trouve les colonnes: description, valeur1, valeur2, valeur3, ..., valeur9.
les différentes valeur[1..9] varie de 0 à 100. la descfription est une string.

J'aurais aimé pouvoir coloré les cellules valeur[1..9] individuellement en fonction de leurs valeur (genre rouge si inférieur à 20, orange entre 20 et 99 et Vert si égal à 100)

j'ai éssayé ceci :
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
procedure TPilot_Aff.DBGridObjectifsDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var valeurGrid:variant;
begin
  inherited;
  // on va colorier les cellules
  valeurGrid:='100';
   if self.DBGridObjectifs.SelectedField.Value=valeurGrid then
     begin
      TDBGrid(Sender).Canvas.Brush.Color := clLime;
    end
   else
   begin
     TDBGrid(Sender).Canvas.Brush.Color := clWhite;
   end;
    TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state);
end;
Mais le resultat n'est pas celui espéré, les lignes entière sont coloré (et non pas chaque cellules individuellement). la couleur de la ligne est verte ou blanche selon la dernière case de la ligne sur laquelle j'ai cliqué ...

si quelqu'un peut m'aidé ca serait fortement apprécié !
Merci d'avance.