请教delphi7.0开发碰到的一个问题…………我系统的设计思想是﹐登入画面成功后进入系统主画面, 我的主画面formstyle属性设为fsmdiform , 该主画面上有一个菜单﹐单击菜单然后调用mdi child 菜单。但现在我通过菜单调用一个mdi child 窗口﹐系统提示如下错误…
No mdi  forms are currently active .部分代码为﹕
procedure TMainForm.N1Click(Sender: TObject);
begin
  frm_kjyw :=tfrm_kjyw.CreateParented(mainform.Handle);
  frm_kjyw.Show ;
end;
附﹕tfrm_kjyw 是一个mdi child 窗口风格, 系统运行到frm_kjyw :=tfrm_kjyw.CreateParented(mainform.Handle); 语句时就出错…..急请高手解决……………

解决方案 »

  1.   

    试试在工程文件.dpr中
    删除
    Application.CreateForm(Tfrm_kjyw, frm_kjyw);这句
    如仍有错误,请参照http://www.nssoft.net/showdoc.asp?did=388
      

  2.   

    回復樓上﹕
    我的工程文件 代碼為:
    Application.Initialize;
    Application.CreateForm(Tfrm_login, frm_login);
    Application.Run;工程進入點為登入窗口.......
      

  3.   

    建议楼主不要采用mdi模式,因为要先创建MDI主空体才可以创建登录。否则会出现No mdi  forms are currently active .
      

  4.   

    回得樓上﹕上綱查資料 ﹐好像delphi ﹐只有工程的main form 是mdi 窗口﹐其才可以創建mdi client 窗口. 
    是不是這樣啊 .再請問一下 ﹐創建mdi client 了窗口是不是用tform.createparent() 函數啊 。其tform.create ,tform.createnew, tform.createparented() 這三個窗體創建過程 ﹐在使用上有
    什么區別啊請高手講解 。。我會加分的。。
      

  5.   

    只有工程的main form 是mdi 窗口﹐其才可以創建mdi child窗口. 
    是不是這樣啊 .
    //是。
    創建mdi client 了窗口是不是用tform.createparent() 函數啊 。
    //不一定。create也可以啊。只要把formstyle:设成fsmdichild就行了。
      

  6.   

    回復樓上﹕delphi 創建mdi client 函數應該有parent窗口概念吧﹐如果用creat 創建子窗口,那如何來
    指定該mdi client窗口的所屬的mdi 窗口 ﹐或delphi 中只能創建一個mdi 主窗口嗎 ﹖
      

  7.   

    建议楼主用MDI子窗体,很好解决的。
    把主窗体设置为MDI窗体,要调用的窗体设置为MDI子窗体。
      

  8.   

    回復樓上﹗我的系統運行模式是這樣的﹐
    先運行登入窗口login ,認証成功后﹐進入主模塊窗口,該窗口包含<財務系統> ﹐《倉庫系統》等几大模塊﹐單擊任一模塊﹐然后才進入每個大模板的的mdi 主窗口界面 ﹐但delphi7.0中好像只能存在一個mdi 主窗口 ﹐而且一定要是main form 指定的窗口 ﹐所有的mdi子窗口都只能是該mdi主窗口的 子窗口.....該如何來解決呢 ﹖ 或有什么變通的方法。。請大家集思廣益啊 ﹐delphi 是稱為高級語言中最好的一種開發工具﹐應該有解決之道吧。........
      

  9.   

    直接创建子窗体, 就象创建普通FormApplication.CreateForm(Tfrm_kjyw, frm_kjyw);
    frm_kjyw.Show;