前2列的颜色为红色, 后面列的颜色为绿色 这个如何写代码 ,谢谢!

解决方案 »

  1.   

    还不是在那个drawXX事件里面写吗,和隔行变色不是一样吗,循环判断,i<=1的时候颜色红,else 绿
      

  2.   

    可以参考一下procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      cellcolor:TColor;
    begin
      Randomize();
      cellcolor:=RGB(Random(255),Random(255),Random(255));
      self.StringGrid1.Canvas.Brush.Color:=cellcolor;
      self.StringGrid1.Canvas.FillRect(rect);
      self.StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,'['+inttostr(ACol)+','+inttostr(ARow)+']');

    end;
      

  3.   

    EGrid没用过 DBGrid的话有个例子procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if DataCol < 2 then
        DBGrid1.Canvas.Font.Color:= clRed;
      else
        DBGrid1.Canvas.Font.Color:= clGreen;  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;