Fórum DBGrid Zebrado #180248

06/09/2003

0

Tentei colocar o DBGrid Zebrado, mas não consigo.

Em tempo de projeto, fica com uma unica cor.

Em tempo de execução, fica com o fundo totalmente em branco.

Segue o código para zebrar o DBGrid, no evento DrawColumnCell:

If DBGrid.Canvas.Brush.Color = clCream Then
Begin
DBGrid.Canvas.Brush.Color := clCream;
End
Else
Begin
DBGrid.Canvas.Brush.Color := clSkyBlue;
End;

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


Daaneto

Daaneto

Responder

Posts

06/09/2003

Koplin

Eu uso isso aqui:

procedure TDBGrid.DrawColumnCell(const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
with canvas do begin
If Brush.Color = clhighlight then Begin
brush.Color := $0045CFF3;
font.Color:=clBlack;
end else
If Odd(DataSource.DataSet.RecNo) Then
Brush.Color:= $00E4E7CD else Brush.Color:= clWhite;
DefaultDrawDataCell(Rect,columns[datacol].field, State);
end; end;


Responder

Gostei + 0

06/09/2003

Daaneto

Colega o codigo que você forneceu apresentou o mesmo efeito do que estava sendo utilizado, ou seja, em tempo de projeto é exibido todas as linhas com uma unica cor e em tempo de execução, todas as linhas ficam com fundo branco.

Arrumei o texto que você enviou da seguinte forma, acho que fica mais legível.

With DBGrid.Canvas do
begin
If Brush.Color = clhighlight then
Begin
Brush.Color := $0045CFF3;
Font.Color:=clBlack;
end
else
Begin
If Odd(DBGrid.DataSource.DataSet.RecNo) Then
Begin
Brush.Color:= $00E4E7CD
End
else
Begin
Brush.Color:= clWhite;
End;
End;

DBGrid.DefaultDrawDataCell(Rect, DBGrid.Columns[DataCol].Field, State);
End;


Responder

Gostei + 0

06/09/2003

Koplin

Caro Daaneto:

Peguei o seu código e coloquei no evento DrawColumnCell de uma DBGrid aqui e ajustei a propriedade DefaultDraw para False ( o que eu esqueci de comentar, desculpe). Em tempo de projeto a grid não muda (claro). Mas em tempo de execução ela fica verde e branca com a linha focada laranja.

Se não conseguir, eu tenho um componente baseado neste código. Te mando, se desejar.


Responder

Gostei + 0

10/10/2003

Fluka

Se tiver o componente a disposição pode mandar pra mim ?

[u:efbf37a1a1]fseehagen@msn.com[/u:efbf37a1a1] :?:


Responder

Gostei + 0

13/08/2005

Ksmarini

amigo daaneto
esse realmente é o melhor código pra zebrar um dbgrid que eu já vi
O DBGrid fica ótimo... Testei o código em no delphi 5, 6 e 7 e funciona perfeitamente
valews mesmo.


Responder

Gostei + 0

13/08/2005

Marco Salles

amigo daaneto esse realmente é o melhor código pra zebrar um dbgrid que eu já vi


O Amigo ksmarini se refere a qual código ???

O Do daaneto Ou O Do koplin ???


Responder

Gostei + 0

14/08/2005

Ksmarini

tava me referindo ao código do amigo daaneto, muito bom mesmo, antes de encontrar esse código eu tentei fazer um zebrado de várias formas, procurei em vários forums e cheguei até a usar componentes de terceiros e o resultado ainda não era satisfatório pra fazer uma coisa que o dbgrid já fazia automaticamente. Resolveu meu problema


Responder

Gostei + 0

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

Aceitar