它应该不会编译到你的Exe文件中去,而是在你的EXE文件写个文件头信息什么的,
你发布时还得一起发布这个运行时间包

解决方案 »

  1.   

    呵呵,你这个问题我以前问过,自己也做过不少试验,结果还是不行,大概是“鱼和熊掌不可兼得吧”,因为Install Packages中的Builde with runtime packages只有两种状态,要么选中,要么不选;所以你要使用自己的Bpl,其实就是Delphi意义上的动态链接库文件,而且要实现你所说的功能,只能选中的同时把原始设置都删去,但随着又会有新的问题出现。其实你的问题换个说法是这样:到底应该怎么做,可以使得Delphi默认的Builde with runtime packages那些原始参数中加入自己定义的Bpl文件,对吗?很抱歉,我也不会——废话!:(,如果谁知道也请告诉我一声。
      

  2.   

    修改下面的文件:
    Vcl50;Vclx50;VclSmp50;Vcldb50;vclado50;ibevnt50;Vclbde50;vcldbx50;Qrpt50;TeeUI50;TeeDB50;Tee50;Dss50;TeeQR50;VCLIB50;Vclmid50;vclie50;Inetdb50;Inet50;NMFast50;webmid50;dclocx50;dclaxserver50;SynEdit_D5
    这是运行时间的包文件,删除你想编译进去的文件。
      

  3.   

    删掉了也不起作用拿到客户端一样要用的。换个提法,就是我有一个第三方的bpl我要用,我打包给用户的时候只有这个bpl和exe文件没有Delphi的VCL.bpl,rtl.bpl等库怎么做?
      

  4.   

    强烈关注.如果有答案请告诉我:
    [email protected]
      

  5.   

    怎么会呢?
    我说的是
    菜单-〉工程-〉选项-〉包 的那一页
    以运行时间库编译   -选中之后
    下面的文本框变成可编辑样式,删除所有的文字,添加你的dcp进去。
    别忘记设置搜寻路径,否则就会找不到。
    路径设置在 -〉路径 那一页。会了吧!
      

  6.   

    使用静态连接,不包含你自己的BPL,用代码在运行时动态加载你自己的BPL(需要修改代码,所有使用你自己的BPL的控件都不能在设计时去创建了),参见Delphi帮助:
    LoadPackage
    InitializePakage
    UnloadPackage等
      

  7.   

    这当然也是一种方法,就像DLL调用一样。
    先用编译指令{$RunOnly ON}  //把包编译成运行期包。
    LoadPackage
    UnloadPackage等
    方法调用
      

  8.   

    >>我想将vcl的那些库加入exe中而我的BPL单独调用,怎么实现?
    选中Builder with runtime package
    在下面的编辑框内,只写上你的Yours.BPLIt's all right!
      

  9.   

    唉,笨呀,上述方法不行!Delphi Bug!只有动态Load Package了:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      PackageModule: HModule;
      AClass: TPersistentClass;
    begin
      PackageModule := LoadPackage('YourPackage.bpl');
      if PackageModule <> 0 then
      begin
        AClass := GetClass('TYourClassInPackage');    if AClass <> nil then
          with TComponentClass(AClass).Create(Application) do
          begin
            {Call the method of your class}
            Free;
          end;    UnloadPackage(PackageModule);
      end;
    end;
      

  10.   

    上面的方法好像不能用在设计时啊。
    没有其它方法吗?
    而且我只能得到TComponentclass而得不到我要的类啊。
    如果是可视化控件可能会在form上放很多,不能设计会很麻烦的。
      

  11.   

    没有办法了!要么你把所有的bpl都打包在Exe文件中,要么都不!如果你没有选中Builder with runtime package,Delphi会把你用到的所有BPL包含在内.
    而一旦你选中Builder with runtime package,会把你用到的所有BPL排除在外.可恨!下面的Edit选项什么作用也不起!Delphi bug !
      

  12.   

    刚才深入研究了一下Package的编译及加载处理过程,现总结如下:
    1.不选Build with runtime package,会把程序所用到的所有包(BPL)静态编译至这个Exe中.其中包括最常用的vcl,rtl包等.
    2.选中Build with runtime package后,在Edit中填写上程序所用到的自定制的包(比如MyCustomPkg.BPL).如果这个包中包含(Requires)了其它运行时刻包(如vcl,rtl等),其中rtl肯定会被包含在内(因为一旦使用了Object类,必引用Classes单元),那么编译后的Exe将自动将自定制包,rtl和其它自定制包所引用的BPL排除在外.发布程序时,必须将这些BPL和自定制包一同随Exe发布.
    3.所以如果选择了Build with runtime package,至少应该发布rtl.bpl.如果自定制的包引用了vcl控件,则还得发布vcl.bpl等.
    Delphi在这方面处理的还不够智能...
      

  13.   

    那么打成ocx会不会影响也要vcl.bpl等库呢?