我创建一个基类包basebpl.bpl:基类窗体、方法等, 并且在创建几个继承自基类窗体的窗体,我想把创建的几个窗体放到一个新包里datashow.bpl, 好像是我的repuires里添加了basebpl.dcp,后又添加了刚创建的几个窗体,可以编译没有问题.  问题:在于动态加载包是提示说找不到指定的模块。不知道这个要怎么作,请帮忙一下,谢谢!

解决方案 »

  1.   

    rocedure Tmainfrm.loadpkbyname(pkname:string);
    var
        pkobject:THandle;
        CreateNewObject:TCreateNewObject; 
    begin
        pkname:='PKlib\'+pkname;  // package dir
        pkobject:=Loadpackage(pkname);
        @CreateNewObject:=GetprocAddress(pkobject,'CreateObject');
        if integer(@CreateNewObject)<0 then application.messagebox('包加载失败!','Load Package',48)
        else
          createnewobject;
    end;包中:
    可以象写dll一样,export CreateObject 就可以了
    至于包中你想放什么放什么,窗体,query,无所谓
    --------------------------------------------------------------------------------