exe里的panel内动态加载form,
一、
在exe里定义 procedure createDefineForm(Modulecode:string);
var
   LFormAry:TForm_dpk;
begin
  LFormAry:=TForm_dpk.create(Modulecode);
end;根据不同的Modulecode自动创建不同的Form,二、TForm_dpk是一个包文件 
问题:
  如何 这个TForm_dpk包文件根据传过来的Modulecode,继承对应的 form(其中:form指的是 form订单DPK,form客户DPK)以上做法的好处是有增加新功能时,不用编译exe文件,直接复制bpl文件和TForm_dpk的bpl文件。
就是不知如何建立  TForm_dpk包的 思路。
  
        

解决方案 »

  1.   

    看在exe中 TForm_dpk是怎么定义的
      

  2.   

    1、寫一個對象或者函數,專門用于load你所建立package,在createDefineForm里,可根據moduleCode來加載各種各樣的包;
    2、在包load完之后,調用FindClass,取得窗體類信息;
    3、由第2步驟,取得類信息後,根據此類信息,再create;上面是大體的一個過程,中間有好多需要構思好,比如:這些package中form是否需要定義一個基類,從基類中繼承呢?是否需要維護自己的一個list來管理這些package.....
      

  3.   

    先将包中的form类注册,必须从TPersistent集成。
    在单元初始化时
    initialization 
       RegisterClass('TSelfForm');调用时类似于
    selfFormClass:= GetClass('TSelfForm'); 
    if selfFormClass <> nil then 
    begin 
    selfForm:= TCustomForm(TComponentClass(selfFormClass).Create (Application));
    end;大概是这个意思,记不太清楚了,楼主可以试一下