Hola.
Por el color no se puede. Pero tomando en cuenta que el color se corresponde con determinado criterio, como te dije anteriormente, podes ordenar la consulta por el criterio. Esto hará que los registros (líneas) del mismo criterio (color) se agrupen.
Para ver si puedo explicarme con un ejemplo voy a tomar la tabla country de dbdemos.mdb de Delphi y considerar como criterio que el campo CONTINENT sea igual a 'South America'.
Inicialmente la consulta es:
Y muestra:
Luego cambiando por:
Código SQL
[-]
SELECT *
FROM COUNTRY
ORDER BY CONTINENT
Queda agrupado por color (en realidad por el criterio):
Si deseas invertir el órden usa el modificador
DESC.
Este es el código de pintado del ejemplo:
Código Delphi
[-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ADOQuery1.FieldByName('CONTINENT').AsString = 'South America' then
DBGrid1.Canvas.Brush.Color:= clYellow
else
DBGrid1.Canvas.Brush.Color:= clMoneyGreen;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Saludos.