我的程序里有一个formStyle := fsMDIForm的主窗体和一个formStyle := fsMDIChild的主窗体及若干个formStyle := fsNormal的窗体,工程文件的project->Option->main Form是一个登录文件(formStyle := fsNormal),登录成功后显示主窗体。
    
    我在project->Option->Auto-create forms:中把这个子窗体移出(其它都在)。    我在主窗体中显示formStyle := fsNormal的窗体都能正常显示,要显示子窗体时就出现“Cannot create form. No MDI forms are currently active.”是不是我没激活子窗体的缘故,该如何激活?我在按钮的OnClick事件是这样写的:
          application.createform(tfrmXtWh,frmXtWh);// frmXtWh就是子窗体
          frmXtWh.show;

解决方案 »

  1.   

    你看在onclick中这样写怎么样:frmxtwh:=Tfrmxtwh.create(nil);
    frmxtwh.show;
      

  2.   

    工程的主文件应该是mdiform。不应该是登陆窗体。
      

  3.   

    你在OnClick事件中加入这样一段代码,看看你的主窗体是不是MDI窗体:
    ShowMessage(Applicaiton.MainForm.Caption);
    如果不是,那说明你的MDI窗体没有成为应用程序的主窗体,这时创建Child当然会出错了。
    建议你只把MDIForm设为自动创建,其他都在程序中通过代码来创建。
    类似:Form := TForm.Craete(Application);