DBGrid Zebrado Linha Selecionada com Outra Cor
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 :) ???
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
Curtidas 0
Respostas
Lehapan
26/12/2005
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.
...
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.
GOSTEI 0
Paulo Renato
26/12/2005
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
Abraços
Paulo
GOSTEI 0
Userba
26/12/2005
Está função tem que estar dentro do evento DrawColumnCell do DBGrid:... .
Funcionou...
Beleza...
Brigaduuuuuuuuuuu.
GOSTEI 0