Dbgrid, como colorir campo de acordo com valor de um coluna

Firebird

16/11/2007

Tenho dbgrid na cor do meu formulário que esta ligada a um TClientDataSet, que contem uma coluna ´resultado´ e outra ´tipo de resultado´. Onde preciso pintar de cor branca a celula ´resultado´ quando o ´tipo resultado´ daquela linha for um determinado valor. e deixar na cor padrão quando for diferente. Não consigo saber qual linha o dbgrid está sendo pintada. No IDDataset funciona desta forma,
procedure TForm1.dbgridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if BuscaTipoResultado(IBDataSet.RecNo) = 4 then
  begin
    if Column.Field = IBDataSet.fieldByName(´resultado) then
    begin
      dbgrid.Canvas.Brush.Color:= clwhite;
      dbgrid.Canvas.FillRect(Rect);
      dbgrid.DefaultDrawDataCell(Rect,Column.Field,State);
    end;
  end
  else
  begin
    dbgrid.Canvas.Brush.Color:= clBtnFace;
    dbgrid.Canvas.FillRect(Rect);
   dbgrid.DefaultDrawDataCell(Rect,Column.Field,State);
  end;
end;

Já no ClientDataset não funciona. Não sei porque mas no TclientDataSet o RecNo só retorna 1.
Se alguem puder me ajudar eu agradeço muito....


Pcsilva

Pcsilva

Curtidas 0
POSTAR