我采用的方式是:主程序为MDI窗体,调用DLL中的MDI子窗体,带包编译后,出现了一些怪问题:
1,之前自定义的应用程序图标没有了,变成了长方形的白块
2,mdi子窗体跑到了主窗体外面,主程序直接打开的子窗体是饱含在主程序里的,但是,子窗体再打开的窗体,就跑到了主程序外面,也就是在工具栏上又多了一块
还请大家帮忙看看是什么原因啊

解决方案 »

  1.   

    设置子窗口的Parent属性!!!
      

  2.   

    DLL里导出这个函数:
    procedure ReplaceGlobalApp(const MainApp:TApplication);
    begin
      Application:=MainApp;
    end;
    主程序加载DLL后马上调用它:
    ReplaceGlobalApp(Application);
    就能解决问题了
      

  3.   

    建议用Package,不要用dll了,如果只是delphi开发的话,不会出现楼主说的问题
      

  4.   

    试了一下,没有楼主所说的现象
    建议楼主:
    1、检查你的窗体上面的图标属性是否已设置
    2、检查你新建的窗体是否设置了fsMDIChild
      

  5.   

    用bpl而不是dll,除非有其它目的。
      

  6.   

    如果用DLL的话,DLL和EXE都要是带包编译才可以
      

  7.   

    我把dll和exe都带包编译了,,,
    回复lake_cx:1,主窗体的图标属性设置了,但是不起作用,dll中的子窗体未设置
                  2,dll中的子窗体设置为fsMDIChild,但是用子窗体新建的窗体没有设置
      

  8.   

    关于bpl,之前尝试过,有些不太好理解,另外,使用bpl的话,两个bpl好像不能同时调用一个共同的单元,这样使用起来很麻烦,,,