delphi如何在TDBGrid奇偶行显示不同的颜色,即隔行换颜色

解决方案 »

  1.   


    for(int i=0;i<DBGrid1.Columns.Count;i++)

        if(i%2==0)
          DBGrid1.Columns.Items[i].Color=clAqua;
        else 
           DBGrid1.Columns.Items[i].Color=clInfoBk;
    }
      

  2.   

    for(int   i=0;i <DBGrid1.Columns.Count;i++) 
    {   
            if(i%2==0) 
                DBGrid1.Columns.Items[i].Color=clAqua;//颜色一 
            else   
                  DBGrid1.Columns.Items[i].Color=clInfoBk;//颜色二 
      

  3.   

    这种问题用搜索一下一大堆帖子!
    下面这个是在大富翁上搜出的:这是让DBGrid隔行的颜色不同  
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if( gdSelected in State)then
      //如果是被选中的  
      begin
        DBGrid1.Canvas.Brush.Color:=clBlue;
        //选中的背景色为clBlue
        DBGrid1.Canvas.Font.Color:=clYellow;
        //选中的字体颜色为clYellow
      end
      else
      if self.DataSource1.DataSet.RecNo mod 2=1 then
         //用self.DataSource1.DataSet.RecNo mod 2
         //来判断行数产生隔行
        DbGrid1.Canvas.Brush.Color:=clRed
      else 
        DBGrid1.CanVas.Brush.Color:=clWhite;
      
      DBGrid1.DefaultDrawcolumnCell(rect,DataCol,Column,State);
      //其他默认
    end;