我做了一个loginform,有登录和退出按钮,按右上角的关闭按钮也可以退出程序。本来我的loginform的close不用写代码,按右上角的关闭按钮都可以退出程序。但是,我现在增加了重新登录功能。主窗体按重新登录弹出loginform后,结果按右上角的关闭按钮不能退出程序而是显示主窗体,如果在loginform的close事件中增加application.terminate的话,那就不能登录而是结束程序,有没有好的办法?

解决方案 »

  1.   

    在你的登录Form里,加些控制代码,创建时初始化这些代码,用以标识是初次登录,还是重新登录;
    在工程文件中,写代码创建登录Form,不要用Application.CreateForm(LoginForm,TLoginForm)这样的自动代码;
      

  2.   

    到底要怎样写啊,我想应该不能在loginform的formclose事件中写代码了,否则登录不了
      

  3.   

    是不是不能这样做啊,因为登录时也要把loginform关闭,这个事件和关闭右上角的关闭按钮的事件是不是一样啊?
      

  4.   

    就是在OnClose中写代码
    例如:在LoginForm中加一个变量标识是初次登录还是重新登录,初始化LoginForm时修改登录标识(如:LoginForm := TLoginForm.Create(Application);
          LoginForm.LoginType := 0; //初次登录
          LoginForm.LoginType := 1; //重新登录)
          在OnClose中判断一下,If LoginType = 0 then Application.Terminate;
      

  5.   

    还有,你的LoginForm登录和退出应该用ModalResult作为返回值,进行判断;要不你就不要在LoginForm的OnClose中加Application.Termicate,在外部加,比如动态创建窗体的代码中加判断;
      

  6.   

    If LoginType = 0 then Application.Terminate;
    加了这句根本就登录不了
      

  7.   

    if loginform.modalresult<>1 then
    applcation.terminate;