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 39
| procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
resultat_examen: string;
min_examen: string;
max_examen: string;
begin
// si l'état de la cellule est sélectionné
If gdSelected In State Then
Begin
// alors on la met de la couleur clNavy
TDBGrid(Sender).Canvas.Brush.Color := clNavy
End Else
Begin
// Sinon
// Si le champ "indice" (champ exemple) de la ligne est à 1
if TDBGrid(Sender).DataSource.DataSet.FieldByName('donnee_min_examen').Value<>Null then
begin
resultat_examen:= TDBGrid(Sender).DataSource.DataSet.FieldByName('donnee_examen').Value;
resultat_examen:= StringReplace(resultat_examen,' ','',[rfReplaceAll]);
resultat_examen:= Strtofloat(resultat_examen)
min_examen:= TDBGrid(Sender).DataSource.DataSet.FieldByName('donnee_min_examen').Value;
min_examen:= StringReplace(min_examen,' ','',[rfReplaceAll]);
min_examen:= StringReplace(min_examen,'.',',',[rfReplaceAll]);
min_examen:= Strtofloat(min_examen)
max_examen:= TDBGrid(Sender).DataSource.DataSet.FieldByName('donnee_max_examen').Value;
max_examen:= StringReplace(max_examen,' ','',[rfReplaceAll]);
max_examen:= StringReplace(max_examen,'.',',',[rfReplaceAll]);
max_examen:= Strtofloat(max_examen);
If (resultat_examen>=min_examen) and (resultat_examen<=max_examen) Then
TDBGrid(Sender).Canvas.Brush.Color := clLime
else
// Sinon on met la cellule à clWhite
TDBGrid(Sender).Canvas.Brush.Color := clRed;
end;
End;
// On applique les modifications.
TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state);
end; |
Partager