Ir para conteúdo

Arquivado

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

JonatasFn

Alterar cor das linhas do DBGrid

Recommended Posts

Pessoal, eu queria saber se tem como eu alterar as linhas do BDGrid. Alterar a cor eu consigo, mas eu queria de acordo com o registro.

 

Eu estou preenchendo o DBGrid com um DataSource, eu queria que quando o registro de uma determinada coluna fosse Debito, a linha ou o texto ficasse vermelha e quando fosse Crédito ficasse Verde.

 

 

Tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma lida neste artigo.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

A idéia quando sugeri que lesse este artigo foi que você o adaptasse as suas necessidades, visto que o mesmo já lhe dá recursos para tanto. Vejamos:

 

1°) Ele já lhe indica qual evento do dbgrid deve usar para montar sua solução do problema.

2°) Já mostra como pintar a linha da cor desejada e não perder as informações.

3°) Tem um teste mostrando uma idéia de como controlar onde e quando mudar a cor da linha.

 

Dê uma lida com calma no artigo, analise o código e veja onde precisa alterar para resolver seu problema...

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cheguei a ler o artigo que o chrnos citou

porque o link parece estar quebrado ou off

 

Acho que voce esta querendo alguma coisa parecida com isso

 

Procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
Begin
   if Table1.FieldByName('NomeDoCampo').Value = 'Crédito' then
      DBGrid1.Canvas.Brush.Color := clGreen;
   if Table1.FieldByName('NomeDoCampo').Value = 'Debito' then
      DBGrid1.Canvas.Brush.Color := clRed;

   DBGrid1.Canvas.FillRect(Rect);
   DBGrid1.DefaultDrawDataCell(Rect,Field,State);
end;

Flw's

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal!!!!

 

 

Estou tenando colocar cores conforme dados do banco de dados....mas não esta funcionando, qndo eu abrir o formulário preciso que ja apareça com cores diferentes....

Segue o código...

procedure TFGridFaturas.DBGridFATURADrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
begin
   if DMCADASTRO.TBGRIDFATURA.FileName.value('PAGO') = 'SIM' then
   begin
      DBGridFATURA.Canvas.Brush.Color := clRed;
   end;
   if DMCADASTRO.TBGRIDFATURA.FieldByName('ANULADO').Value = 'NAO' then
      DBGridFATURA.Canvas.Brush.Color := clRed;

   DBGridFATURA.Canvas.FillRect(Rect);
   DBGridFATURA.DefaultDrawDataCell(Rect,Field,State);

end;

Por favor se alguém puder me ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Experimente colocar isso no evento OnDrawColumnCell do seu DBGrid.

 

 

DBGridFATURA.Canvas.Font.Color := clBlack;
 
if DMCADASTRO.TBGRIDFATURA.FileName.value('PAGO') = 'SIM' then 
begin 
   DBGridFATURA.Canvas.Font.Color := clRed; 
end; 
 

if DMCADASTRO.TBGRIDFATURA.FieldByName('ANULADO').Value = 'NAO' then 
  DBGridFATURA.Canvas.Font.Color := clRed; 

DBGridFATURA.DefaultDrawColumnCell( Rect, DataCol, Column, State);

Aqui eu utilizo algo semelhante, acredito que resolverá seu problema.

 

Até a próxima. :thumbsup:

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.