大家都知道,"component"菜单中有三项,分别为:1 New Component2 Install Component3 Import ActiveX这三项的区别是什么呢?如果我要添加一个ocx组件,用哪项?如果要添加一个DLL文件呢?希望详细点.谢谢大家

解决方案 »

  1.   

    大家都知道,"component"菜单中有三项,分别为:1 New Component写 pas 控件。2 Install Component安装控件 pas。3 Import ActiveX安装 AX ,OCX 控件。这三项的区别是什么呢?如果我要添加一个ocx组件,用哪项?用 3 点安装。如果要添加一个DLL文件呢?Oh,My God。不知道。希望详细点.谢谢大家
      

  2.   

    第三方控件安装方法说明文档
    1、对于单个控件,Componet-->install component..-->PAS或DCU文件-->install;
    2、对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可;
    3、对于带*.bpl文件的控件包,Install Packages-->Add-->bpl文件名即可;
    4、如果以上Install按钮为失效的话,试试Compile按钮;
    5、是run time lib则在option下的packages下的runtimepackes加之。
        如果编译时提示文件找不到的话,一般是控件的安装目录不在Delphi的Lib目录中,有两种方法可以解决:
    1、反安装的源文件拷入到Delphi的Lib目录下;
    2、或者Tools-->Environment Options中把控件源代码路径加入到Delphi的Lib目录中即可。
    注意:所安装的控件是否与你所用的Delphi版本相适应。
     
    RxLib的安装:
     
      首先在Delphi 5 的 IDE 中将以前版本的 Rxlib 反安装掉,删除 RXCTL5.BPL、RXDB5.BPL、 RXBDE5.BPL、DCLRX5.BPL、 DCLRXDB5.BPL 和DCLRXBD5.BPL。
      打开 Rx 的运行包 RXCTL5.DPK,在 Package 窗口中按 Compile 按钮编译 RXCTL5.DPK ,然后用同样方法编译另两个运行包RXDB5.DPK 和 RXBDE5.DPK ,将编译后的三个 BPL 文件放到搜索路径中,如 WINDOWS\SYSTEM等。
      在编译完运行包后你必须将 RX 的设计期包安装到 IDE 环境中。
      打开 Rx 的设计期包 DCLRX5.DPK,在 Package 窗口中按 Compile 按钮编译,然后按 Install按钮将设计期包注册到组件面板中。用同样的方法安装 DCLRXDB5.DPK 和 DCLRXBD5.DPK。
      注意:不要在 Delphi IDE 中保存包资源(package sources)!
     
    控件删除:在Component/Install Packages中删除。 
    选Component/configure Palette…
    有pages和components两个区域
    双击components区域,选中要删除得控件,下面有得Delete按钮
    但系统提供的控件只能Hide,不能delete。
    打开控件所在的包文件(*.dpk),从中删除控件那个文件,再重新编译该包即可
    如果是整个控件包都要删除的话,project->Option->Packages,删掉那个packages,That would be ok~ 
      

  3.   

    但如果是调用一个DLL文件呢?
      

  4.   

    调用DLL
    1、动态调用
    声明
    SendColorMMS = Function(XMLStr: PChar):Integer; stdcall;
    调用
    function TFrameColorSmsMain.Send_mms(AXml: string): integer;
    var
      Hinst: Thandle;
      SCM: SendColorMMS;
    begin
      try
        Hinst := LoadLibrary('SMSSOAPDLL');
        if Hinst <= 0 then
          Raise Exception.Create('调用失败,错误代码是:'+Inttostr(Getlasterror))
        else
          @SCM := GetProcAddress(Hinst, 'Send_MMS');
        if not Assigned(SCM) then
          Raise Exception.Create('GetProcAddress调用失败,错误代码是:'+Inttostr(Getlasterror))
        else
          result := SCM(pchar(AXml));
      finally
        FreeLibrary(Hinst);
      end;
    end;2、静态调用
    声明
    Function Send_Message(XMLStr : PChar):Integer;stdcall;far;external 'SMSSOAPDLL.dll';
    调用:
    就跟普通函数一样调用