procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin
    TDBGrid(Sender).Canvas.Brush.Color := clBlue;
    TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
end;

解决方案 »

  1.   

    procedure TFGFrame.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      with (Sender as TDBGrid) do
      begin
        if ((State = [gdSelected]) or (State = [gdSelected, gdFocused])) then
        begin
          Canvas.Font.Color := clHighlightText;
          Canvas.Brush.Color := clHighlight;
        end
        else begin
          if DataSource.DataSet.RecNo mod 2 <> 0 then
            Canvas.brush.Color := clSkyBlue
          else
            Canvas.brush.Color := clWhite;
        end;
        DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
    end;
      

  2.   

    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
      if (table1.RecNo mod 2) = 0 then
        DBGrid1.Canvas.Brush.Color:=CLblue
      else
        DBGrid1.Canvas.Brush.Color:=CLRED;  DBGrid1.Canvas.FillRect(Rect);
      DBGrid1.Canvas.TextOut(Rect.left + 2, Rect.top + 2, Field.AsString);end;
      

  3.   

    先要设置DBGrid1.DefaultDrawing:=False;然后添加事件代码:
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin  if (DBGrid1.DataSource.DataSet.RecNo mod 2) = 0 then
        DBGrid1.Canvas.Brush.Color := clSilver
      else
        DBGrid1.Canvas.Brush.Color := clWhite;
      DBGrid1.Canvas.Rectangle(Rect);
      DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top + 2, Field.AsString);
    end;