Array
(
)

Cor DBGrig

Nasguone
   - 20 jan 2006

Olá a todos ....estou com querendo colocar cor no dbgrid, ou seja conforme a variavel do dataset for pendente fica uma cor no grid ou se for agendada fica outra.
Estou usando o codigo abaixo porem ele pinta todos os campos com as mesmas cores.....
Alguem tem alguma luz para me dar!!!!

procedure TfrmInfC.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if dm.cdProntAP_Status.AsString = ´AGENDADA´ then
begin
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.Canvas.Brush.Color := clInfoBk;
end
else
begin
DBGrid1.Canvas.Font.Color := clGreen;
DBGrid1.Canvas.Brush.Color := clInfoBk;
end;

DBGrid1.DefaultDrawColumnCell(Rect, 0,Column, state);
end;


Massuda
   - 20 jan 2006

Do jeito que você fez, deve estar ficando a linha toda com uma cor ou a outra.

Para fazer com que apenas um determinada coluna (imagino que seja a do campo cdProntAP_Status faça...#Código

procedure TfrmInfC.DBGrid1DrawColumnCell(...
begin

if Column.Field.FieldName = dm.cdProntAP_Status.FieldName then begin

if dm.cdProntAP_Status.AsString = ´AGENDADA´ then begin
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.Canvas.Brush.Color := clInfoBk;
end
else begin
DBGrid1.Canvas.Font.Color := clGreen;
DBGrid1.Canvas.Brush.Color := clInfoBk;
end;
end;

DBGrid1.DefaultDrawColumnCell(Rect, 0,Column, state);
end;