Fórum Dbgrid, como colorir campo de acordo com valor de um coluna #59134

16/11/2007

0

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

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar