Fórum Pintar Linha da DBGRID #219381

09/03/2004

0

Olá, tenho esse código, mas não está funcionando corretamente:
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

Facc

Responder

Posts

09/03/2004

Marco Salles

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;



Responder

Gostei + 0

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

Aceitar