现在在写一个程序,结构是主程序加很多的功能模块,由于实在不能搞定dll,打算使用bpl:主程序编译为exe文件,将功能模块做成bpl来调用,
现在的问题是:
1,如何将一个做好的工程封装为bpl?
2,如何在主程序中调用bpl中的窗体?请大家指点,谢谢!!

解决方案 »

  1.   

    New  - Packages其它跟做普通程序一样
      

  2.   

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1709719
      

  3.   

    但是,如何在主程序中打开bpl中的窗体呢?
    楼上说的地址打不开啊
      

  4.   

    很多方法的,最简单的可以Build With Runtime Package:YourPackage,然后再Exe里直接引用Bpl里的窗体单元,创建出来就可以了
      

  5.   

    给你个简单的例子:
    Bpl:
    package MyBpl;{$R *.res}
    {$ALIGN 8}
    {$ASSERTIONS ON}
    {$BOOLEVAL OFF}
    {$DEBUGINFO ON}
    {$EXTENDEDSYNTAX ON}
    {$IMPORTEDDATA ON}
    {$IOCHECKS ON}
    {$LOCALSYMBOLS ON}
    {$LONGSTRINGS ON}
    {$OPENSTRINGS ON}
    {$OPTIMIZATION ON}
    {$OVERFLOWCHECKS OFF}
    {$RANGECHECKS OFF}
    {$REFERENCEINFO ON}
    {$SAFEDIVIDE OFF}
    {$STACKFRAMES OFF}
    {$TYPEDADDRESS OFF}
    {$VARSTRINGCHECKS ON}
    {$WRITEABLECONST OFF}
    {$MINENUMSIZE 1}
    {$IMAGEBASE $400000}
    {$IMPLICITBUILD ON}contains
      ufrmBpl in 'ufrmBpl.pas' {frmBpl};end.Exe:uses
      ufrmBpl;procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TfrmBpl.Create(Self) do
      try
        ShowModal;
      finally
        Free;
      end;
    end;
      

  6.   

    Exe的Project Option里:Build With Runtime Package:MyBpl
      

  7.   

    对了,如果主程序是MDI窗体,bpl中是mdi子窗体,可以直接调用吗?
      

  8.   

    在bpl中不用担心。它与DLL不一样。
      

  9.   

    再请问,建一个package的时候,complie,install都是什么功能呢?
      

  10.   

    complie//编译程序,你会看到相应的文件,
    install//如果是组件,安装组件到组件面板
      

  11.   

    现在出现这个一个问题
    我在公共bpl中封装了一个窗体frmMain,上面有一个adoconnect控件和一个adoquery控件,主程序来引用这个控件,在主程序的uses部分已经声明如下:
    uses Common;
    然后调用的代码如下:
    with frmMain.adoquery1 do
    begin
    end;
    此时会报错说frmMain没有定义?我已经在build with runtime package里加入了我做的bpl,为什么还会找不到呢?
      

  12.   

    另外还有一个问题:我在install package的build with runtime package这里的add添加包的时候,要照的包的后缀名是dcp而不是bpl,所以一开始无法添加,后来在上面那个add里找到并添加了自己的包之后,自己的包就自动加入下面了,感觉挺困惑,是不是因为我的包没有加对,所以出了这样的问题?
      

  13.   

    又出现问题了,调用bpl中的全局变量会出现访问冲突,,,这是怎么回事啊,,,请大家说说看
      

  14.   

    Delphi Dynamic Architectures with PackagesMarco Cantu — Wintech Italia Srlhttp://video.codegear.com/CodeRageIIArchives/Day2/MarcoCantu_DynamicArchitectures.zip
      

  15.   

    uses 的时候说找不到 pas