



Muitas vezes precisamos facilitar a visualização dos dados para o
usuário, geralmente com listas com muitas colunas.
Um modo de ajudar o usuário é ir alternando as cores entre as linhas
da lista, popularmente conhecido como “Deixar a lista zebrada”.
Diante desta necessidade, foi formulado um código generico para poder
ser utilizado em qualquer Grid.
No evendo OnDrawColumnCell do seu DBGrid, deixe conforme o exemplo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if not (gdSelected in State) then begin if Odd((Sender as TDBGrid).DataSource.DataSet.RecNo) then (Sender as TDBGrid).Canvas.Brush.Color:= clWhite else (Sender as TDBGrid).Canvas.Brush.Color:= $00F1F2F3; // leve cinza // Aplicando prto para a cor da fonte (Sender as TDBGrid).Canvas.Font.Color:= clBlack; (Sender as TDBGrid).Canvas.FillRect(Rect); (Sender as TDBGrid).Canvas.TextOut(Rect.Left + 2, Rect.Top, Column.Field.DisplayText); end; end; |
Se preferir, você pode alterar o código para deixar as cores de sua
preferencia.
Dúvidas ou sugestões deixe nos comentários do post.
Você precisa fazer o login para publicar um comentário.
Boa noite
Usei o código genérico e o dbgrid não ficou zebgrado.
Interessante que também já tinha usado outros códigos de outros sites e também não funcionou.
Uso Delphi XE6, Firebird 2.5 e Firedac.
Se puderem me ajudar agradeço.
Está utilizando algum Style?
Pois o Style altera por ele mesmo as cores.
Nos demais casos, ao menos nos meus testes, o código funciona muito bem.
Obrigado pela resposta.
Não estou usando nenhum Style.
Depois de muitos testes, troquei o FIREDAC pelo ZEOS, para conexão com o BD (Uso o Firebird 2.5) e funcionou.
Não entendo porque não funciona com o FIREDAC.
Pessoal
Muito obrigado pela atenção.
Consegui fazer funcionar.
Mais uma vez obrigado e parabéns pelo excelente trabalho.
Paulo
Já experimentou o TSMDbgrid? É free:
http://www.scalabium.com/smdbgrid.htm tem as sources dá para estuda-lo e é fantástico.
Acho que não deixa postar o link:
http://www.scalabium.com/smdbgrid.htm
Funciona sim, só precisam ser aprovados os comentários.