Pintar Linha da DBGRID
Olá, tenho esse código, mas não está funcionando corretamente:
O que está acontecendo é o seguinte, quero que pinte todas as linhas que tenham um atraso de 10 dias ou mais, porém está pintando apenas a ultima linha (que é maior de 10). tentei fazer um While mas entrou num loop infinito.
procedure TFrm_CtVencidas.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (DataModule1.Tbl_ReceberDt_Vencer.Value-Date) >= 10 then begin DBGrid1.Canvas.Brush.Color:= clAqua; DBGrid1.Canvas.Font.Color:= clWindowText; DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;
O que está acontecendo é o seguinte, quero que pinte todas as linhas que tenham um atraso de 10 dias ou mais, porém está pintando apenas a ultima linha (que é maior de 10). tentei fazer um While mas entrou num loop infinito.
Facc
Curtidas 0
Respostas
Marco Salles
09/03/2004
amigo, tente o código:
procedure TFrm_CtVencidas.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (Column.Field= DataModule1.Tbl_ReceberDt_Vencer)And ((Date-DataModule1.Tbl_ReceberDt_Vencer.AsDateTime) >= 10)) then begin DBGrid1.Canvas.Brush.Color:= clAqua; DBGrid1.Canvas.Font.Color:= clWindowText; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column.Field, State); end;
GOSTEI 0