我有现两个Form,一个是登陆的Form_login,另一个是登陆之后出现的主窗体Form_main,
在Form_login的登陆事件是我是这样写的:
  Form_login.Hide;
  Form_main.showmodal;
  Form_login.close;
这样可以正常登陆到主窗体,现在我在主窗体中设了一个重登陆的按钮,点此按钮,调用Form_login窗体(此时的Form_main窗体不可见),我就在重登陆按钮的事件加的这样:
  Form_main.Hide;
  Form_login.showmodal;
  Form_main.close;
现在问题就出来,调用此窗体再次登陆时就出错了。不能登陆到Form_main的主窗体了。还有顺便问一下:如果说我点得登陆之后,要求Form_main主窗体也可见的话,而又想调用前面的Form_login来登陆的话, 这样该怎么写呢?

解决方案 »

  1.   

    Form_login的登陆事件改成这样试试
      Form_main.Hide;
      Form_login.show;
      Form_main.close;
      

  2.   

    主要原因是你的Form_main的create与Form_login的不存在,因为你已经close了
      

  3.   

    主窗体是不可以close的,你可以将主窗体hide就可以了。如果确定要退出系统的时候再close主窗体
      

  4.   

    是不是这样:
    Form_Main.Free;
    Application.CreateForm(TForm_Login,Form_Login);
    Form_Login.ShowModal;
    Form_Login.Free;
      

  5.   

    Form_Main.Free;
    Application.CreateForm(TForm_Login,Form_Login);
    Form_Login.ShowModal;
    Form_Login.Free;
    -----------------你这样,Form_Login就成了主窗口了
      

  6.   

    你非要关闭主窗口吗?hide不可以吗,或者不hide就直接调用Form_Login又有什么关系那?
      

  7.   

    Form_main.Hide;
      Form_login.showmodal;
    去掉Form_main.close;
      

  8.   

    Form_Main.Free是为了释放资源 :)
    Login通过后再
    Application.CreateForm(TForm_Main,Form_Main)啊