我用VB写了一个OCX,它的一个方法的某个参数的值为调用窗体的句柄,故我用long类型,编译后在VB中调用成功。然后在Delphi 6 中通过菜单Conponent-->Import ActiveX Control导入成功,但在相应的选项卡上看不到控件的图标,不知道什么原因?问题二:我在窗体中直接引用控件单元,发现刚才的控件单元那个方法的句柄参数类型变为Integer了,而窗体句柄类型为HWDN,我怎样将窗体句柄(如Self.Handle)转换为Integer,以便能使用那个方法?

解决方案 »

  1.   

    HWDN就是Integer,不过是个别名,两者是兼容的。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    to:lxpbuaa(桂枝香在故国晚秋)及mrtxc(阿春)不行,编译都过不了,提示类型不对。
      

  3.   

    那你强制转化:Integer(H)或者HWND(I)不就可以了么。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  4.   

    1.关闭所有工程
    2.选择Component菜单项
    3.选择Install ActiveX Control
    4.ADD
    5.选择你的.ocx
    6.install手动注册用regsvr32命令!
      

  5.   

    To:lxpbuaa(桂枝香在故国晚秋) ( )
    强制转换类型编译是通过了,但执行的时候提示地址错误,我的调用代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      aa:_MyDlg;
      bb:Integer;
      ss:string;
    begin
      bb:=Integer(Self.Handle);
      ss:=aa.Excute(bb);
      showmessage(ss);
    end;
    其中,_MyDlg为我导入的单元文件中我做的控件接口,代码为:  _MyDlg = interface;
    function Excute(var ParentHwnd: Integer): WideString; safecall;to:tongki_8(矛盾与迟钝)
    我就是用你说的方法来导入的,但就是不行。
    如果是DLL文件就行
      

  6.   

    看看Component-》configpalette是否有这个控件
      

  7.   

    aa没见Create,比如aa := Co_MyDlg.Create(或其他方法) as _MyDlg;