dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Como deixar um DBGrid zebrado ou colorido?

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.

  • InfusTec
  • 7 comentários
  • 28 de março de 2015

7 respostas para “Como deixar um DBGrid zebrado ou colorido?”

  1. Paulo Do Prado Borba disse:

    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.

  2. Paulo Do Prado Borba disse:

    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.

  3. Paulo Do Prado Borba disse:

    Pessoal
    Muito obrigado pela atenção.

    Consegui fazer funcionar.

    Mais uma vez obrigado e parabéns pelo excelente trabalho.

    Paulo

  4. mariodosreis disse:

    Já experimentou o TSMDbgrid? É free:
    http://www.scalabium.com/smdbgrid.htm tem as sources dá para estuda-lo e é fantástico.

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados