我的窗口有一个登录窗口,被设为MainFrom了,主要工作窗体并不是MainForm,现在我想将主要工作窗体和另外一个窗体设置成MDI和它的子窗体,按一般方法将这两个窗体的FormStyle分别设为fsMDIForm和fsMDIChild后,运行出错,提示说当前没有激活的MDI主窗体,请问有什么办法解决?

解决方案 »

  1.   

    没人答吗?这个应该是DEPHI的基本问题吧,虽然我不会
      

  2.   

    把工程单元的program XXXX;
    里边的Application.CreateForm(TMainForm, MainForm);
    屏蔽掉。
    要想让登录窗口先显示,可以先隐藏主窗口,显示登录窗口的代码卸载主窗口的代码里。
    或者,建个不显示的单元,在里边写显示登录窗口的代码,
    function UserLogin: boolean;
    begin
      result:=false;
      if not assigned(frmLogin) then
        frmLogin := TfrmLogin.Create(nil);
      frmLogin.ShowModal;  if (frmLogin.ModalResult=mrOK) then
      begin
        result :=true;
        InitPubSetting();
      end;   frmLogin.Close;
       FreeAndNil(frmLogin);
    end;在工程单元里的MDIForm窗体创建前写
      
    Application.CreateForm(TSysDBOp, SysDBOp);
      if not UserLogin then
      begin
        freeandnil(SysDBOp);
        Application.Terminate;
        exit;
      end;
      

  3.   

    打开项目属性ctrl+shift+f11
    把你的mdiform设置为第一个启动的窗体,移除mdichild窗体!
    或者更改工程源代码。
      

  4.   

    楼上几位的说法我看了,大致的思路是将MDI主窗体设为MainForm是吗,然后用其它方法让登录窗口先显示出来.我想问一下只有这种方法吗?
    DEPHI我是真的不会,想想还是VC/MFC好