Dbgrid zebrado conforme a data
Galera tenho um Dbgrid que fica zebrado indicando o dia assim:
o código é assim no dbgrid
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:
alguém tem alguma idéia de como eu poderia corrigir esse erro???
Thanks
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:
alguém tem alguma idéia de como eu poderia corrigir esse erro???
Thanks
Marcos Fernando
Curtidas 0
Respostas
Paullsoftware
26/06/2006
Aqui funciona normalmente comigo...
no evento DBGrid1DrawColumnCell
espero ter ajudado :wink:
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
Marcos Fernando
26/06/2006
obrigado [b:e2a33cc9c5]paullsoftware[/b:e2a33cc9c5] mas preciso saber qual a uses para (SelData.Date)
thanks
thanks
GOSTEI 0
Massuda
26/06/2006
Seu código não funciona direito porque você está assumindo que o grid é desenhado sequencialmente, o que não é verdade. O desenho do grid (e, consequentemente, a geração do evento de desenho) é feito conforme a necessidade. Por exemplo, se você mover um outro form sobre parte do grid de baixo para cima, provavelmente o desenho será feito na ordem inversa que você está imaginando. Dê uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=66283]neste tópico[/url], onde tem um problema parecido.
@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.
@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
Paullsoftware
26/06/2006
[quote:85fe1f65ce=´Marcos Fernando´]obrigado [b:85fe1f65ce]paullsoftware[/b:85fe1f65ce] mas preciso saber qual a uses para (SelData.Date)
thanks[/quote:85fe1f65ce]
op´s desculpa... é uma DataEdit da paleta RxControls mais pode ser substituido por um DateTimePick...
thanks[/quote:85fe1f65ce]
op´s desculpa... é uma DataEdit da paleta RxControls mais pode ser substituido por um DateTimePick...
GOSTEI 0
Marcos Fernando
26/06/2006
grato pela atenção amigos, só para entender
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
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