想改变StringGrid某一行的颜色,看到别人给了一个函数,不知道怎么传递参数,特别是后面这几个参数,不知掉怎么传递
ACol,   ARow,Rect,State 要怎么传递,谁能给个例子解释一下,
procedure   TForm1.StringGrid1DrawCell(Sender:   TObject;   ACol,   ARow:   Integer;    Rect:   TRect;   State:   TGridDrawState);   
var   
  s:   String;   
  R:   TRect;   
begin   
  if   ARow   =   3     then   
  begin   
      case   ACol   of   
          1:   TStringGrid(Sender).Canvas.Brush.Color   :=   clGreen;   
          2:   TStringGrid(Sender).Canvas.Brush.Color   :=   clRed;   
          3:   TStringGrid(Sender).Canvas.Brush.Color   :=   clYellow;   
          4:   TStringGrid(Sender).Canvas.Brush.Color   :=   clBlue;   
      end;   
      S   :=   TStringGrid(Sender).Cells[ACol,   ARow];   
      R   :=   TStringGrid(Sender).CellRect(ACol,   ARow);   
      TStringGrid(Sender).Canvas.FillRect(R);   
      TStringGrid(Sender).Canvas.TextOut(R.Left,   R.Top,   S);   
  end;   
end;

解决方案 »

  1.   

    看不懂。
    Rect,State都没有使用,为什么要写到函数里呢
      

  2.   

    在FORM上放一个STRINGGRID(TSTRINGGIRD), 放后理论上是STRINGGRID1, 点选这个STRINGGRID1, 看左边的 object Inspector, 点EVENTS页面, 找到ONDRAWCELL项, 双击这个项的右边处, DELPHI就会自动加上相应的代码.然后代码处, 自动生成 
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    beginend;
    这些代码了然后你就写,或复制代码上去,天啊,这最最最最最基本的东西啊~~~~~~如果你非要问怎么会这样, 你去看VCL的代码吧, 会告诉你怎么会执行这个的....