Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JonatasFn

Pintar somente uma célula do DBGrid

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.