JonatasFn 0 Denunciar post Postado Fevereiro 24, 2011 Olá Pessoal, preciso de uma mãozinha aqui ... Eu to precisando pintar uma célula do DBGrid de acordo com o valor da mesma. Eu to usando esse código no onDrawColumnCell, mas ele está pintando a linha inteira, só que na verdade eu quero que pinte somente uma célula: If DM.queVisualizaTarefa.FieldByName('data_limite').Text = 'N' then DBGrid1.Canvas.Brush.Color:= clRed else DBGrid1.Canvas.Brush.Color:= clGreen; DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString); Pode ser até pintar somente a linha da célula, mas gostaria que fosse só uma célula. Alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Felipe Pierin 0 Denunciar post Postado Fevereiro 24, 2011 Olá Fiz um exmeplo simples no qual eu pinto toda célula que tiver uma palavra com a letra "a". Para isso, usei o evento DrawColumnCell do DBGrid veja só: procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if AnsiContainsText(DataSource1.DataSet.FieldByName(Column.FieldName).AsString, 'a') then DBGrid1.Canvas.Brush.Color := clRed else DBGrid1.Canvas.Brush.Color := clWhite; DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,state); end; Abcs, Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Fevereiro 28, 2011 Olá Fiz um exmeplo simples no qual eu pinto toda célula que tiver uma palavra com a letra "a". Para isso, usei o evento DrawColumnCell do DBGrid veja só: procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if AnsiContainsText(DataSource1.DataSet.FieldByName(Column.FieldName).AsString, 'a') then DBGrid1.Canvas.Brush.Color := clRed else DBGrid1.Canvas.Brush.Color := clWhite; DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,state); end; Abcs, eae Felipe, vlw pela ajuda ... mas não deu. Ele coloriu a linha toda e não só uma célula. Alguém? O q estou fazendo de errado? Compartilhar este post Link para o post Compartilhar em outros sites