我最近编写一个delphi系统,其中有一个功能是:当我们登陆系统后可以注销当前用户,用其他用户在登陆(就是切换用户和注销系统)
在注销是我用的语句是: 
 frmlogin:=Tfrmlogin.create(self); 
frmlogin.showmodal; 
frmlogin.free; 
运行时提示"cannot make a visible window modal" 
,我所有的窗口的visible为false 
求助我怎么样才能实现注销当前用户实现新用户的登陆 登陆的时候判断完后我用的是以下语句
.......
......
        frmlogin.Hide;
      frmMain.ShowModal;
........
小弟愚知,希望各位帮忙解决问题,感激不尽

解决方案 »

  1.   

    注销时干嘛还frmlogin:=Tfrmlogin.create(self);   ????注销时直接剪断当前用户的信息就完了呗。还有必要让这个窗体重新创建吗?你是想注销后直接弹出这个窗体,等待其他人用其他名字登陆吗?
      

  2.   

    再者,你登陆完后frmlogin根本没有释放,而是hide了,那你注销时的再次创建,就有问题了吧?感觉你这个地方很乱,重新整理一下吧!登陆时:
    frmlogin.create;
    frmlogin.showmodal;
    frmlogin.free;注销时:
    1、剪断当前登陆者的信息;
    2、重新执行登陆时的代码。
      

  3.   

    不要把窗体看得太重要
    这个什么Tfrmlogin不就是个给你返回用户名和密码的工具嘛(当然还有DialogResult)
    可以拿到用户名和密码后就把它Free了,然后下次要用户再输入的时候再Create起来
    也可以拿到用户名和密码后就把它Hide了,下次要的时候再Show就行了
    默认窗体关闭后是caHide的真正的注销和登录应该在于你的当前用户状态的切换