En el evento
OnDrawColumnCell, agrega el siguiente código:
Código Delphi
[-]var
BkColor: TColor;
days_to_void: Integer; begin
BkColor := TDBGrid(Sender).Canvas.Brush.Color;
DBetween := DaysBetween(Query.FieldByName('vencimiento').Value, Now());
case days_to_void of
0..3: BkColor := clRed;
4: BkColor := clOrange;
5..8: BkColor := clGreen;
else
BkColor := iif(days_to_void < 0, clRed, BkColor);
end;
TDBGrid(Sender).Canvas.Brush.Color := BkColor;
end;
Para utilizar el código anterior, necesitas agregar a tus
USES la unidad DateUtils. Además, ten en cuenta que utilizo una función llamada
iif. Realmente esta función no existe. Su declaración sería:
Código Delphi
[-]function iif(TestValue: Boolean, ATrue: Variant; AFalse: Variant): Variant; inline;
begin
if TestValue then
result := ATrue
else
result := AFalse;
end;
Saludos!