自从进入 dephi 世界后,一直都感觉 vb 特不专业,
为了解决 com 下事件的编程 接口导出 adodb 接口,我花费了很长时间
都不能很好的解决。
现在我甚至怀疑,dephi 对com 的支持甚至没有 vb 好,至少在
进程内组件 自动化组件方面。

解决方案 »

  1.   

    1 需要定义一个图标。
    2 你是手工增加函数还是在类型库编辑器里自动增加的?如果自动增加应该不会有问题。
    3 用Windows.SetParent , 因为TControl里定义了SetParent函数。
      

  2.   

    2 如果是自动产生的语句,应该类似
    procedure TmtsSecurityObj.Login(const Name: WideString; const Password: WideString; 
                                    var Cookie: OleVariant);
    begin
      DefaultInterface.Login(Name, Password, Cookie);
    end;
      

  3.   

    谢谢 windindance(风舞轻扬) 等的答复
    1 dephi6 存在很多bug ,现在我决定还是用dephi5 
    2 dephi 的事件我经过很长时间摸索,终于可以传出参数
      例如,当 com 内窗体的 text chang 发生时,如下编写传出事件:
       procedure MyTextChang(sender:Tobject);
        begin
          if Fevents<>nil then fevents.OnTextChang(form1.edit1.text);
           //ontextchang 为自动化事件接口
        end;
    inilization
       form1.edit1TextChang:=MyTextchang;//将事件句秉赋值给自己编写的过程。
      

  4.   

    setparent 在windows 单元里面有声明,
    但如果我们自己在不包含 windows 的单元里声明,即便正确声明,
    甚至按照 windows 里面的声明,编译照样错误,提示不存在该函数
      procedure setparent(MyHand,ParentHandle:longword):longword;external 'user32.dll'
    //longword 等同于 Hesult
      

  5.   

    {$EXTERNALSYM SetParent}
    function SetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;
    function SetParent; external 'user32.dll' name 'SetParent';