有一定的挑战性

解决方案 »

  1.   

    procedure red();
    var
      flag:boolean;
      i:integer;
    begin
      flag:=true;
      i:=1;
      while i<=dbgrideh1.rowcount do
        begin
          if flag
          then
            begin
              dbgrideh1.rows[i].color:=clred;
              dbgrideh1.rows[i+1].color:=clred;
              i:=i+2;
              flag:=not flag;
            end;
        end;
    end;
      

  2.   

    procedure red();
    var
      flag:boolean;
      i:integer;
    begin
      flag:=true;
      i:=1;
      while i<=dbgrideh1.rowcount do
        begin
          if flag
          then
            begin
              dbgrideh1.rows[i].color:=clred;
              dbgrideh1.rows[i+1].color:=clred;
              i:=i+2;
              flag:=not flag;
            end
          else
            begin
              dbgrideh1.rows[i].color:=clwhite;
              dbgrideh1.rows[i+1].color:=clwhite;
              i:=i+2;
              flag:=not flag;
            end;
        end;
    end;
      

  3.   

    直接在它的OnGetCellParams事件中添加procedure TFrmMain.DBGridDayGetCellParams(Sender: TObject;
      Column: TColumnEh; AFont: TFont; var Background: TColor;
      State: TGridDrawState);
    begin
      if DBGridDay.SumList.RecNo mod 2 = 1 then
        Background := $EAEAEA
      else
        Background := $FDFDFD;
    end;
      

  4.   

    将 mod 2=1 改为 mod 3 =1就OK拉
      

  5.   

    谢谢楼上兄弟们,正确答案
    procedure TFManAttend.DBGE_listGetCellParams(Sender: TObject;
      Column: TColumnEh; AFont: TFont; var Background: TColor;
      State: TGridDrawState);
    begin
    if (DBGE_list.SumList.RecNo mod 4 = 1) or (DBGE_list.SumList.RecNo mod 4 = 2) then
        Background := $EAEAEA
      else
        Background := $FDFDFD;end;