大致是如下的意思,改变TDBGird的颜色
if (TDBGrid(Sender).DataSource.DataSet.RecNo Mod 2)=0 then
   TDBGrid(Sender).Canvas.Brush.Color:=RGB(200,0,100)
else
    TDBGrid(Sender).Canvas.Brush.Color:=RGB(100,150,50);
if State.Contains=gdSelected then
 begin
  TDBGrid(Sender).Canvas.Brush.Color:=RGB(100,100,20);
  TDBGrid(Sender).Canvas.Font.Color:=clWhite;
 end;

解决方案 »

  1.   

    if Boolean(TDBGrid(Sender).DataSource.DataSet.RecNo mod 2) then
    begin
      TDBGrid(Sender).Canvas.Brush.Color:=TColor(RGB(200,0,100));
    end
    else begin
      TDBGrid(Sender).Canvas.Brush.Color:=TColor(RGB(100,150,150));
    end;
    if gdSelected in state then //我想这段代码应该在Grid 的OnDrawDataCell或OnDrawColumnCell中才行。
    begin
      TDBGrid(Sender).Canvas.Brush.Color:=TColor(RGB(100,150,150));
      TDBGrid(Sender).Canvas.Font.Color:=clWhite;
    end;
      

  2.   

    if TDBGrid(Sender).DataSource.DataSet.RecNo div 2<>0 then
       begin
         TDBGrid(Sender).Canvas.Brush.Color=RGB(200,0,100);
       end
    else
       begin
           TDBGrid(Sender).Canvas.Brush.Color=RGB(100,150,50);
       end;
    if gdsSelected in State then
      begin
          TDBGrid(Sender).Canvas.Brush.Color=RGB(100,100,210);
            TDBGrid(Sender).Canvas.Font.Color=clWhite;
      end;
    State 是一个集合类型的东西,C++里面没有他们谁用类来实现的!