Fórum Dbgrid zebrado conforme a data #324265
26/06/2006
0
[img:c4769b2031]http://www.brasilsistemas.com.br/brasilsistemas/1.JPG[/img:c4769b2031]
o código é assim no dbgrid
if not(gdSelected in State) then begin if (Data <> DadosDATA.Value) then begin Data := DadosDATA.Value; if Cor = $00E8E8E8 then Cor := clWhite else Cor := $00E8E8E8; end; with (Sender as TDBGrid) do begin Canvas.Brush.Color := Cor; DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;
private do form
Data : tdate;
Cor = color;
ps: código enviado por: FERNANDO AZE
Só que quando me movimento no grid eu perco a zebragem inicial correta
fica assim:
[img:c4769b2031]http://www.brasilsistemas.com.br/brasilsistemas/2.JPG[/img:c4769b2031]
alguém tem alguma idéia de como eu poderia corrigir esse erro???
Thanks
Marcos Fernando
Curtir tópico
+ 0Posts
27/06/2006
Paullsoftware
no evento DBGrid1DrawColumnCell
if ( DM_BANCO.LOCACAO.FieldByName(´DATARETORNO´).Value < SelData.Date ) then begin DBGrid1.Canvas.Font.Color := clRed; DBGrid1.Canvas.Font.Style := []; DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; if ( gdSelected in State ) then begin if ( DM_BANCO.LOCACAO.FieldByName(´DATARETORNO´).Value < SelData.Date ) then begin DBGrid1.Canvas.Font.Color := clYellow; DBGrid1.Canvas.Font.Style := [fsBold]; DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end else begin DBGrid1.Canvas.Font.Color := clWhite; DBGrid1.Canvas.Font.Style := [fsBold]; DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end end;
espero ter ajudado :wink:
Gostei + 0
27/06/2006
Marcos Fernando
thanks
Gostei + 0
27/06/2006
Massuda
@paullsoftware
Pelo que entendi, seu código desenha com cor diferente os registros que tem data (de retorno?) anterior a uma determinada data (escolhida no SelData). Isso é um pouco diferente da situação do Marcos.
Gostei + 0
27/06/2006
Paullsoftware
thanks[/quote:85fe1f65ce]
op´s desculpa... é uma DataEdit da paleta RxControls mais pode ser substituido por um DateTimePick...
Gostei + 0
27/06/2006
Marcos Fernando
ao
[b:3f8d2b4201]paullsoftware[/b:3f8d2b4201]
como o componente é uma DataEdit onde eu indico o recebimento das inf. da base de dados? pois no cód. que me passou só tem ref. a ele através do (SelData.Date) mas não indica onde o componente receberá o valor da tabela tipo DataEdit.date = tabelacampo.value;
thanks
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)