Terceira cor em dbgrid zebrado

25/09/2004

0

O código abaixo deixa um dbgrid zebrado.
Gostaria de saber se tem como colocar uma terceira cor. Sendo que essa terceira cor so apareceria na linha em que estivese posicionado.
Tentei colocar True em dgRowSelect mas não funcionou.

Valeu a força!!!

JR.

If odd(data.IBTFun.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= $00F8E2D6;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;


Jrjoliv2003

Jrjoliv2003

Responder

Posts

25/09/2004

Uildenei

insere o seguinte pedaço de codigo:


//acerta cores da linha selecionada
if dbgrid1.HighlightCell(, , , State) then
begin
Canvas.Font.Color :=clWhite;
Canvas.Brush.Color:=clBlack;
end //acerta cores de campos ordenados


Responder

25/09/2004

Jrjoliv2003

Não deu certo!!!

if dbgrid1.HighlightCell(, , , State) then
begin
Canvas.Font.Color :=clWhite;
Canvas.Brush.Color:=clBlack;

Não reconhece ´HighlightCell´.

JR.


Responder

26/09/2004

Fabio.hc

Tente assim:


If odd(data.IBTFun.RecNo) then 
   begin 
   DBGrid1.Canvas.Font.Color:= clBlack; 
   DBGrid1.Canvas.Brush.Color:= $00F8E2D6; 
   end 
else 
   begin 
   DBGrid1.Canvas.Font.Color:= clBlack; 
   DBGrid1.Canvas.Brush.Color:= clWhite; 
   end; 

if gdSelected in State then
   begin
   DBGrid1.Canvas.Font.Color:= clBlack;
   DBGrid1.Canvas.Brush.Color:= clAqua;
   end;

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



Responder

26/09/2004

Jrjoliv2003

Beleza!!! Resolvido. Coloquei assim:

If odd(data.IBTCon.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= $00F8E2D6;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;

if gdSelected in State then
begin
DBGrid1.Canvas.Font.Color:= clWhite;
DBGrid1.Canvas.Font.Style:=[fsBold];
DBGrid1.Canvas.Brush.Color:= $00DF5400;
end;

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


Valeu a força!!!

Eu postei uma mensagem sobre Ficha de chamada em QuickReport. Se puder ajudar agradeço, estou penando para fazer...

JR.


Responder

26/09/2004

Uildenei

bom, pessoal!

eu fiz uma modificação em um dbgrid de acordo com o que eu precisava entao fiz rotinas como: ordenação, mudanca de cores de coluna de acordo com a ordem, zebra, configuração de colunas através de dicionario de dados, etc ...


por isso o HighLightCell nao aparece na aplicação normal pq ele eh um metodo protegido da classe.

Uildenei.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar