主窗口是个普通窗口,点击一个按钮出现一个具有父窗口属性的窗口,同时想在父窗口的窗口上出现一个具有子窗口特性的窗口,但是错误高诉是can't create form . No MDI forms are current active.????????????????//处理这种方式,应该怎么办呀?

解决方案 »

  1.   

    你的主窗口必须为MDIForm风格的窗口,
    否则不能创建MDIChild风格的窗口。
      

  2.   

    不是MDI的窗体有没有父窗体一说?
      

  3.   

    借用他人源码,帮你燃眉之急。
    大概是登陆的事情吧?
    项目文件是:
    {$R *.res}begin
      Application.Initialize;
      Application.CreateForm(Tmain, main);  
      Application.CreateForm(Tlogin, login);
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    end.
    -----------------------------------------然后在登录表单login的“确定”按钮中写入:
    begin
         modalresult:=mrOK;
    end;
      

  4.   

    你点按钮出来的窗口要设为MDIForm风格的窗口
      

  5.   

    恩,这么多人呀,呵呵。现在先将问题重复一下。
        1、应用程序打开后是一个标准窗口。
        2、在一个标准窗口下可以用一个按钮激活一个有MDIform的窗口,这步可以实现。
       3、在这个MDIForm窗口下象创建具有CHild风格的窗口,但是不行,你们可以试一试。多谢了。
      

  6.   

    设置Application.MainForm 为那个MDIForm就可以了!
      

  7.   

    我的mdiform窗体为form2;我应该怎么设。
      这样吗?application.MainForm := form2;但这样编译器通不过呀
      can't assign to a read only property
      

  8.   

    菜单:project>options>Forms>Main Form 在下拉列表框中选择要设为主Form的窗体
      

  9.   

    参考一下DLL 中创子窗口的贴子,
      

  10.   

    不好意识,我并没有打算将mdi风格的窗口做为主窗口,在程序打开后便运行
      

  11.   

    变通的办法:新建应用程序
    新建Form2、Form3
    修改Form1的属性FormStyle为fsMDIForm
    修改Form2的属性FormStyle为fsMDIChild
    在.dpr源代码中添加Application.ShowMainForm := False;
    在Fomr1中添加Timer1并设置其Interval为100并在OnTimer时间中添加:
    Timer1.Enabeld := False;
    Form3.Show;你的目的就此实现。至于MID父窗口是否一定是MainForm或者如何才能不是MainForm,俺也不清楚。
    继续关注中...
      

  12.   

    to kingofhell(地狱之王)
    项目文件是:
    {$R *.res}begin
      Application.Initialize;
      Application.CreateForm(Tmain, main);  
      Application.CreateForm(Tlogin, login);//程序打开后是一个标准窗口
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    end.
    -----------------------------------------然后在登录表单login的“确定”按钮中写入:
    begin
         modalresult:=mrOK;//用一个按钮激活一个有MDIform的窗口
    end;接下来的子窗体可用!
    我测试过的没有问题!
      

  13.   

    to kingofhell(地狱之王)
    项目文件是:
    {$R *.res}begin
      Application.Initialize;
      Application.CreateForm(Tmain, main);  
      Application.CreateForm(Tlogin, login);//标准窗口login
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    end.
    -----------------------------------------然后在标准窗口(login)的“确定”按钮中写入:
    //这就是你说的用一个按钮激活一个有MDIform的窗口
    begin
         modalresult:=mrOK;
    end;
    够清晰了吧!
      

  14.   

    to  cnsuyong(小可) 
    谢谢,但是我这里还是不行, 你能否发到 受到后把分都给你。