Dbgrid, como colorir campo de acordo com valor de um coluna
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,
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....
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
Curtidas 0