转帖小新写过的:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (Table1.Recno mod 2) <> 0 then begin
    DBGrid1.Canvas.Font.Color := clWhite;
    DBGrid1.Canvas.Brush.Color := clRed;  //这里设置单元格填充色
    DBGrid1.Canvas.FillRect(Rect);  //这里对相应的单元格进行北景色填充
  end;
  //输出内容
  DBGrid1.Canvas.TextRect( Rect, Rect.Left, Rect.Top, Column.Field.AsString);
end;

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
    if (Table1.Recno mod 2) = 0 then begin //条件
    begin
    DBGrid1.Canvas.Font.Color := clWhite ;
    DBGrid1.Canvas.Brush.Color := clRed; 
    [其它属性]
    end
    else
    begin
    DBGrid1.Canvas.Font.Color := clWhite ;
    DBGrid1.Canvas.Brush.Color := clyellow; 
    [其它属性]
    end;
    Dbgrid1.defaultdrawcolumncell(rect,datacol,column,state) ;
    end;
      

  2.   

    OnDBGrid1DrawColumnCell
    太多了