好久没在这发贴了,没分了,大家看看也行偶在一个SG.pas的单元里,定义了如下:type
 TExCell = class(TStringGrid)public
 procedure DeleteRow(ARow: Longint);
 procedure DeleteColumn(ACol: Longint);
 procedure InsertRow(ARow: LongInt);
 procedure InsertColumn(ACol: LongInt);
end;现在,在另一个FORM里,有一个StringGrid1,我想让这个StringGrid1有上面的InsertColumn方法,该怎么搞?

解决方案 »

  1.   


    var
     Col:integer;
    begin
    .....
    TExCell(StringGrid1).InsertColumn(Col);
    .....
    end;
      

  2.   

    SG.pas 首先你把这个单元注册为组件然后 进入DFM文件中进行修改 就可以了  楼上说的不对,强制转换成子类 调用方法会报错
      

  3.   

    你的grid是什么类型,如果是TStringGrid就不行,应为TStringGrid不包含那个方法
      

  4.   

    回楼上,你好就是TStringGrid类型,那怎么搞?
      

  5.   

    你是通过IDE 选择组件放到窗体上的Stringgrid 
    如果不嫌麻烦就按我说的 如果像简单就直接动态创建TExCell 替代Stringgrid
      

  6.   

    回楼上,请问如何:
    如果像简单就直接动态创建TExCell 替代Stringgrid?有没示例
      

  7.   

    方法很多第一种是直接把SG.pas注册,到时候组件列表选项里就又这个组件。而且可以通过delphi本身的DFM文件将StringGrid1替换成TExCell  第二种方法是删掉窗体上的Stringgrid1 
    自己动态创建一个TExCell  因为TExCell 是Stringgrid的子类,所以所有属性都支持
      

  8.   

    注册组件吧~~然后把那个STRINGGRID1删除掉,换上你的TExCell