怎么根据条件改变DBGrid每一行的颜色,应该写在哪个事件中,
才不至于程序的运行速度慢下来

解决方案 »

  1.   

    DrawDataCell  or  DrawColumnCell事件中
      

  2.   

    procedure TfrmGGXDPQB.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      inherited;
      if DBGrid1.Columns.Items[DataCol].Field.AsString = '六' then
      begin
        TDBGrid(sender).Canvas.Font.Color:=clBlue;
        TDBGrid(sender).DefaultDrawColumnCell(rect,datacol,column,state);
      end;
      if DBGrid1.Columns.Items[DataCol].Field.AsString = '日' then
      begin
        TDBGrid(sender).Canvas.Font.Color:=clred;
        TDBGrid(sender).DefaultDrawColumnCell(rect,datacol,column,state);
      end;
    end;