DBGrid Zebrado Linha Selecionada com Outra Cor

26/12/2005

0

Olá gente!

Peguei esta dica abaixo na WEB e utilizei para zebrar meu DBGrid.

Ok! As linhas alternam beleza entre cores de fundo (verde/branco) e cores de fonte (branca/preta)

O dbgrid é utilizado apenas para mostrar o resultado de uma pesquisa e seleção de uma linha onde vou capturar uma chave ao clicar em Ok ou dar 2 cliques no DBGrid :)

dgRowSelect e dbAlwaysShowSelection estão setados como TRUE.

Utilizo DBExpress -> meus componentes ClientDataSet, DataSetProvider, ClientDataSet, ficam em modulos separados (não estão no form da pesquisa)...

Acontece que ao navegar pelos registros do DBGrid ... Não está aparecendo aquela linha padrão (AZUL) para destacar a linha selecionada.

Hummm... E aí... Tem como Zebrar e Destacar a linha selecionada do DBGrid ao mesmo tempo? Tipo... Ao navegar ... a linha selecionada ficar com o famoso destaque em (AZUL) ou outra cor :) ???

...
If odd(dm_usuario.cds_loc_usuario.RecNo) then
begin
  dbg_usuario.Canvas.Font.Color := clWhite;
  dbg_usuario.Canvas.Brush.Color:= clGreen;
end

else

begin
  dbg_usuario.Canvas.Font.Color := clBlack;
  dbg_usuario.Canvas.Brush.Color:= clWhite;
end;

  dbg_usuario.Canvas.FillRect(Rect);
  dbg_usuario.Canvas.TextOut(Rect.Left + 2,Rect.Top, Column.Field.AsString);
...




Userba

Userba

Responder

Posts

27/12/2005

Lehapan

Está função tem que estar dentro do evento DrawColumnCell do DBGrid:

...

if gdSelected in State then
begin
dbg_usuario.Canvas.Font.Color := clHighlightText; //Fundo
dbg_usuario.Canvas.Brush.Color:= clHighlight; //Fonte
end
else
begin
If odd(dm_usuario.cds_loc_usuario.RecNo) then
begin
dbg_usuario.Canvas.Font.Color := clWhite;
dbg_usuario.Canvas.Brush.Color:= clGreen;
end
else
begin
dbg_usuario.Canvas.Font.Color := clBlack;
dbg_usuario.Canvas.Brush.Color:= clWhite;
end;
end;

dbg_usuario.Canvas.FillRect(Rect);
dbg_usuario.Canvas.TextOut(Rect.Left + 2,Rect.Top, Column.Field.AsString);
...

Qualquer coisa avise.


Responder

27/12/2005

Paulo Renato

Cuidado ao utilizar a grid zebrada pois tive problemas quanto ao esquema de cores do windows. Se o usuário tiver um esquema de cores amigável ela vai funcionar bem, mas se o esquema for muito ´enfeitado´ as cores ficam muito escuras e não vai conseguir ver o que está escrito na grid.

Abraços

Paulo


Responder

27/12/2005

Userba

Está função tem que estar dentro do evento DrawColumnCell do DBGrid:... .


Funcionou...
Beleza...
Brigaduuuuuuuuuuu.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar