例子,自己修改一下首先将DBgrid的DefaultDrawing属性设置为false; 
然后在DBBrid的DrawColumnCell事件中这样做: 
 
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; 
  DataCol: Integer; Column: TColumn; State: TGridDrawState); 
begin 
  if Column.Field.AsInteger < 75 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 dbgrid1.DataSource.DataSet.RecNo mod 2=0 then
      dbgrid1.canvas.Brush.color:=$00BFE4E2 else
      dbgrid1.canvas.brush.color:=$00E3FBFB;
      dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);end;速达的界面
    另d6+win2000通过
      

  2.   

    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;
      

  3.   

    blackfiles(从来是我伤心):你是怎样试的
      

  4.   

    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
    嘻嘻嘻小小修整嘻嘻嘻嘻
    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if Odd(Column.Index) then begin
        TDBGrid(Sender).Canvas.Font.Color := clWhite;
        TDBGrid(Sender).Canvas.Brush.Color := clRed;  //这里设置单元格填充色
        TDBGrid(Sender).Canvas.FillRect(Rect);  //这里对相应的单元格进行北景色填充
        TDBGrid(Sender).Canvas.TextRect(Rect, Rect.Left, Rect.Top, Column.Field.AsString);
      end;
    end;
      

  5.   

    To cobi: 就是用你的代码试的,只有一色。你有没有试?
    To zswang:你的是列,而不是行哦。要隔行哦。
      

  6.   

    我是试过才拿出来的
    你的数据库是不是sql server的,它不支持recno,因此判断条件肯定是正确
      

  7.   

    to Cobi,我用的是ACCESS数据库, 怎么也只有一种色  ,怎么办?
      

  8.   

    to cobi(我是小新)
      DataSet for SQL Server非编辑态是支持的
      

  9.   

    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
    嘻嘻嘻测试成功嘻嘻嘻嘻
    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻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 := clSkyBlue;
        TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
    end;
      

  10.   

    for Access2000
    for SQL Server7.0/2000
    for Paradox7
      

  11.   

    to zswang 
    试了你的颜色不同可以实现,  但是非clSkyBlue色的那行就没有数据显示了,怎么办?
      

  12.   

    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 := clSkyBlue;
        TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end else 
        TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
      
    end;
      

  13.   

    回复人: zswang(伴水)(被黑中) (2001-12-12 19:18:59)  得0分 
    for Access2000 俺的access返回的reno总是-1
     
      

  14.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if dbgrid1.datasource.dataset.recno mod 2= 0 then
         begin
         dbgrid1.Canvas.Brush.Color :=clyellow;
         dbgrid1.Canvas.font.Color :=clwindowtext;
         end
      else
         begin
         dbgrid1.Canvas.Brush.Color :=clinfobk;
         dbgrid1.Canvas.font.color:=clred;
         end;
         dbgrid1.Canvas.Brush.Style:=bssolid;
         dbgrid1.canvas.fillrect(rect);
     DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;还是那句话,要是不行,你扁我!