各位大哥,我在里面创建了一个主窗口 frmEApplyTabMain,FormStyle:=fsMDIForm,子窗体frmCheckerWorkStation 为:FormStyle:=fsMDIChild,我在主窗体里面是这样调用的: 
if not Assigned(frmCheckerWorkStation) then
  begin
    frmCheckerWorkStation := TfrmCheckerWorkStation.Create(Application);
    frmCheckerWorkStation.ParentWindow := frmEApplyTabMain.Handle;
  end;
frmCheckerWorkStation.Show;
我这里面是在DLL中实现的,我是通过一个倒出函数把 frmEApplyTabMain Show出来的,然后就是和没有DLL的.exe程序一样的界面,如果是在.exe中是不会报错的,可是在DLL中就有这个问题错误信息是:
Cannot create form. No MDI forms are currently active.
各为大哥,在中我要设置些什么信息呢?还有就是怎么调用?非常谢谢,再次声明一下,我要的效果是MDI形式的

解决方案 »

  1.   

    在DLL中必须把APPLICATION的HANDLE传给它
    如:Application.Handle := Apphandle;//Apphandle这个是传进来的主窗体的HANDLE
      

  2.   

    这样好象不行啊!不知你那个 Apphandle 是指.exe的还是DLL中的那个主窗体,怎么写呢放在什么事情上呢?非常谢谢
      

  3.   

    好象要把appliction.handle和screen对象这两个DD传到DLL中,并且赋值给DLL中对应的DD
      

  4.   

    这一句好像没有必要吧?(我是猜测的,不必介意)
        frmCheckerWorkStation.ParentWindow := frmEApplyTabMain.Handle;
    if not frmCheckerWorkStation.Showing then
      frmCheckerWorkStation.Show;