怎么版?

解决方案 »

  1.   

    必须把方法放在public区中,才能用。
      

  2.   

    想在属性面板中看到,放在published中!
      

  3.   

    修改完了,需要从新编译(点击所在包的Compile按钮)!
      

  4.   

    方法怎么能够放到Object Inspector上呢?只有属性和事件才可以published,方法published没有意义。
      

  5.   

    我编的一个控件,想在里面夹一个方法,给别的程序用,(主要是用这个方法把宿主程序的数据,如123,传给这个控件)。
    我使用ACTIVEXFORM向导编的,我用edit菜单中的add to inteface 夹了个
    procedure tellme(I:integer);
    结果控件源程序理有这个函数,(他一开始在protected下,宿主程序看不到这个方法),我把它放在public 下,同样看不到,
    各位大虾们能不能给小弟一个详细的步骤阿。我郁闷了一天了,老板要我们加班,不能回家,郁闷死了:(
      

  6.   

    1)tellme是通过Type Library Editor增加的吗?
    2)修改过后的ActiveX需要重新注册,否则新的方法不会被别的程序识别的。
    这个时候,protected还是public已经无所谓了。
    3)你术语用的有些问题,控件在Delphi中默认得都是指VCL控件,而不是ActiveX。
      

  7.   

    SORRY , chechy(为程序而奋斗) 大哥,我编的是ACTIVEX控件,tellme是Type Library Editor增加的,也重新注册了,你能自己试试看吗?
    我搞不懂了,郁闷死了,谢谢你的回复:)
      

  8.   

    不用试了,我开发过n个ActiveX控件,这些问题都是驾轻就熟的。
    既然是TypeLibrary加的,你就重新编译。重新注册。
    你不妨先卸载,然后把以前的ActiveX删调。出现这种情况,往往是其它地方的dll留在注册表中,而不是你刚刚写的。
      

  9.   

    我试了,不行啊,在问一下:
      比如我在一个程序中应用这个控件,

    type
      TForm1 = class(TForm)
        PX1: TPX;//控件的实例
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    。。
    那么我在某个函数中用时是不是这样用
    PX1.TELLME(12);
    还是
    PX1.ControlInterface.TELLME(12);
    两个我都试了,在PX1.后面更本没有TELLME这个属于控件的方法
      

  10.   

    应该在Delphi中卸掉这个ActiveX,然后才重新安装。Delphi生成的ActiveX包装程序可能是旧的。
      

  11.   

    我知道了:要重新加载TLB文件的(先REMOVE 再ADD),重新的编译DEURSER50包