Casimiro te pongo unas imágenes de lo que te comentaba anteriormente
Ten en cuenta que usado colores a lo loco, deberías usar, un color y derivar luego de este cambiado sólo uno de los valores de la rgb para que fueran tonalidades mas consecutivas.
La parte del código que creo te puede interesar es esta
Código Delphi
[-]
function UlDigit(nNumero: integer): Integer;
var
udTama,udResult:Integer;
cNumero:string;
begin
cNumero:=IntToStr(nNumero);
udTama:=Length(cNumero);
if udTama>1 then udResult:=StrToInt(Copy(cNumero,((udTama)),1))
else udResult:=StrToInt(cNumero);
Result := udResult;
end;
procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var color:TColor;
begin
case UlDigit(StrToInt(DataSource2.DataSet.FieldByName('LOTE').value)) of
0:Color:=ColorBox10.Selected;
1:Color:=ColorBox12.Selected;
2:Color:=ColorBox13.Selected;
3:Color:=ColorBox14.Selected;
4:Color:=ColorBox15.Selected;
5:Color:=ColorBox16.Selected;
6:Color:=ColorBox17.Selected;
7:Color:=ColorBox18.Selected;
8:Color:=ColorBox19.Selected;
9:Color:=ColorBox20.Selected;
end;
DBGrid2.Canvas.Brush.Color := Color;
Dbgrid2.Canvas.FillRect(Rect);
dbGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Como puedes comprobar use mi BD de pruebas y el Campo por el que hago la comprobación es LOTE, en tu caso sería ASIENTO