我知道STRINGGRID里面用过
我个人认为可能一样
你到x-soft.myrice.com看看

解决方案 »

  1.   

    很简单啊,在draw的事件中写吧。
      

  2.   

    呵呵,路过,顺便帮一下你
    在DBGrid的OnDrawDataCell里面写如下代码(你可以自己修改一下颜色和字体)
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
      if (table1.RecNo mod 2) = 0 then
        DBGrid1.Canvas.Brush.Color := clgray
      else
        DBGrid1.Canvas.Brush.Color := clwhite;  DBGrid1.Canvas.FillRect(Rect);
      DBGrid1.Canvas.TextOut(Rect.left + 2, Rect.top + 2, Field.AsString);
    end;
      

  3.   

    说详细一点就是在OnCustomDrawCell中写就哦卡了。
      

  4.   

    对大型数据库不能取到RecNo
    可以采用另外的方法,加一个计算字段计算列号代替RecNo
      

  5.   

    RecNO 为什么总为-1  ?
      

  6.   

    procedure TDBGridC.DrawCell(Sender: TObject; const Rect: TRect;
        DataCol: Integer; Column: TColumn; State: TGridDrawState);
    Var HPR:Integer;
    Begin
         If dgRowLines in Options Then
            HPR:=Rect.Bottom-Rect.Top+1
         Else
             HPR:=Rect.Bottom-Rect.Top;     If Not (gdSelected In State) Then
         Begin
              If DataSource.DataSet.RecNo>=0 Then
              Begin
                   If DataSource.DataSet.RecNo Mod 2=0 Then
                      Canvas.Brush.Color:=FC1
                   Else
                       Canvas.Brush.Color:=FC2;
              End
              Else
              Begin
                   If ((Rect.Top Div HPR) Mod 2)=0 Then
                      Canvas.Brush.Color:=FC1
                   Else
                       Canvas.Brush.Color:=FC2;
              End;
         End;
         
         DefaultDrawColumnCell(Rect, DataCol, Column, State);
    End;
      

  7.   


    上面的这位老兄。 
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
      if (table1.RecNo mod 2) = 0 then
        DBGrid1.Canvas.Brush.Color := clgray
      else
        DBGrid1.Canvas.Brush.Color := clwhite;  DBGrid1.Canvas.FillRect(Rect);
      DBGrid1.Canvas.TextOut(Rect.left + 2, Rect.top + 2, Field.AsString);  //这里把所有的数据都变为了字符类型,如果我定义了一个带美元符的符号的话,那就会不见了
    end;
      

  8.   

    非常感谢大家的帮助!
    Bob7946(X度空间) 和AP() 的方法中 recno总是-1,
    按johnsonrao(johnson) 所说加计算字段的方法好用,
    现已实现。
    谢谢谢谢!
      

  9.   

    还要给分是吧?
    第一次提问,非常感谢大家,都给点分吧。
    Bob7946 : 10
    AP: 10
    johnsonrao: 10ok