哪位大虾知道如何把Form放入DLL中并做为MDIChild调用?DLL中的Form还在调用数据库啊.有例子程序没有啊???

解决方案 »

  1.   

    谢谢 绝望中的平静 我的E-MAIL:[email protected]
      

  2.   

    在DLL中建立一个TMDIChildForM
    1 Dll中的MDIForm.FormStyle不用为fmMDIChild.
    2 在CreateForm后写以下两句:
    function ShowForm(mainForm:TForm):integer;stdcall
    var
      Form1: TForm1;
      ptr:PLongInt;
    begin
      ptr:=@(Application.MainForm);//先把dll的MainForm句柄保存起来,也无须释放,只不过是替换一下
      ptr^:=LongInt(mainForm);//用主调程序的mainForm替换DLL的MainForm。MainForm是特殊的WINDOW,它专门管理Application中的Forms资源.
    //为什么不直接Application.MainForm := mainForm,因为Application.MainForm是只读属性
      Form1:=TForm1.Create(mainForm);//用参数建立
    end;
    备注:参数是主调程序的Application.MainFormFROM 超级猛料
      

  3.   

    我也想要一个例子程序啊。[email protected]