用户身份校验问题,如何重复接受输入的用户名 ( 积分: 100 )

  • 主题发起人 主题发起人 gxkmdnk
  • 开始时间 开始时间
G

gxkmdnk

Unregistered / Unconfirmed
GUEST, unregistred user!
我用edit来接受用户名和密码的,问题是如果用户名或密码错误,如何回到edit来重新接受输入呢,请指点一下
 
edit1.Text:=&nbsp;'';<br>edit1.SetFocus;
 
我也是这样写的,开始可以,第二次不等我输入就直接运行后面的语句了
 
edit1.Text:=&nbsp;'';<br>edit1.SetFocus;&nbsp;<br>exit;
 
好象不行啊
 
怎么不行?你好好试试,我天天这样用怎么会不行?<br>procedure&nbsp;check<br>begin<br>&nbsp;if&nbsp;cPassWord&lt;&gt;RightPass&nbsp;then&nbsp;<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;Showmessage('用户名密码错误!');<br>&nbsp;&nbsp;&nbsp;edtName.text:=''&nbsp;&nbsp;;&nbsp;//如果还使用原来的名字则不要这一句<br>&nbsp;&nbsp;&nbsp;edtName.SetFocus;<br>&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;end;<br>end;
 
{-------------var&nbsp;check------------------}<br><br>用个timer<br>begin<br>if&nbsp;check&nbsp;then<br>begin<br>{---------------下面来自wyb_506-------------------------}<br>if&nbsp;edtName.text&lt;&gt;RightPass&nbsp;then&nbsp;<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;Showmessage('用户名密码错误!');<br>&nbsp;&nbsp;&nbsp;edtName.text:=''&nbsp;&nbsp;;&nbsp;//如果还使用原来的名字则不要这一句<br>&nbsp;&nbsp;&nbsp;edtName.SetFocus;<br>&nbsp;&nbsp;end;<br>check&nbsp;:=&nbsp;false;<br>end;<br>end;
 
exit&nbsp;好象是退出check这个程序,往下执行了,
 
我也是这样写的,开始可以,第二次不等我输入就直接运行后面的语句了&nbsp;<br><br>没等你输入就有事件发生了,可能是OnKeyUp吧,<br>如果在OnKeyUp作判断,并且你在输入错误后就提示给用户,用户有可能用Enter键确定来关闭你的提示窗口,但是按下Enter键时提示窗口就已经关闭了,此时焦点就回到了你的登录窗口,随即用户就放开了Enter键,此时就会触发OnKeyUp,而这个OnKeyUp恰好又是你的判断过程,又会弹出错误提示,这样就进入了一个死循环,如果用鼠标点击确定按钮就不会了
 
edit1.Text:=&nbsp;'';<br>edit1.SetFocus;&nbsp;<br>exit;<br>这个完全可以的,但是不知道你写在哪个过程里。
 
不明白为什么要用OnKeyUp这个事件,你直接用登录按钮的单击事件就行了,有必要搞得那么麻烦吗
 
用这个就可以了!<br>edit1.Text:=&nbsp;'';<br>edit1.SetFocus<br>从楼主的回答上,就知道你肯定出错了。按你的设计其它不用输什么,直截按“确定”也会执行下面的程序!<br>因为:ShowModal=mrOK了<br>建议:<br>program&nbsp;HRM;<br>。。。。<br>。。。。<br>begin<br>&nbsp;loginform:=tloginform.Create(application);<br>&nbsp;&nbsp;loginform.ShowModal;//loginform为模式窗口<br>&nbsp;&nbsp;if&nbsp;loginform.ModalResult=1&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;//&nbsp;loginform.Free;<br>&nbsp;&nbsp;Application.Run;<br>&nbsp;&nbsp;end<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;application.Terminate;<br>end.
 
var<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User,&nbsp;Password:&nbsp;String;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Success:&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;repeat<br> Success&nbsp;:=&nbsp;true;<br>&nbsp;&nbsp; if&nbsp;ShowLogin(User,&nbsp;Password,&nbsp;Organize)&nbsp;=&nbsp;false&nbsp;then&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp; Success&nbsp;:=&nbsp;false;<br>&nbsp;&nbsp;&nbsp;&nbsp; Break;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;DM.qry_czy&nbsp;do&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;开始查找该用户<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parameters.ParamByName('mc').Value&nbsp;:=&nbsp;User;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parameters.ParamByName('mm').Value&nbsp;:=&nbsp;Password;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;用户名和密码都不正确<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;RecordCount&nbsp;&lt;&gt;&nbsp;1&nbsp;then&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.MessageBox('登录者名称或密码不正确。',&nbsp;'错误',&nbsp;MB_ICONINFORMATION);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Success&nbsp;:=&nbsp;false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Continue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;until&nbsp;(Success&nbsp;=&nbsp;true);<br> if&nbsp;Success&nbsp;=&nbsp;false&nbsp;then<br>&nbsp;&nbsp; Application.Terminate<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp; //&nbsp;登录成功后的处理<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>end;<br><br><br>function&nbsp;ShowLogin(var&nbsp;User,&nbsp;Password:&nbsp;String;&nbsp;var&nbsp;Organize:&nbsp;TOrganizeType):&nbsp;Boolean;<br>begin<br> with&nbsp;TfrmLogin.Create(nil)&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowModal;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;(ModalResult&nbsp;=&nbsp;mrOk);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Result&nbsp;=&nbsp;true&nbsp;then&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;:=&nbsp;Trim(edtUser.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Password&nbsp;:=&nbsp;Trim(edtPassword.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Organize&nbsp;:=&nbsp;TOrganizeType(cmb_lx.ItemIndex&nbsp;+&nbsp;1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Free;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>end;
 
to&nbsp;shadowpj<br>&nbsp;&nbsp;&nbsp;&nbsp;为什么输完用户名和密码后程序不往下走啊?
 
其他代码我没贴全啊。上面的是mianform的代码<br>下面的function&nbsp;ShowLogin(var&nbsp;User,&nbsp;Password:&nbsp;String;&nbsp;var&nbsp;Organize:&nbsp;TOrganizeType):&nbsp;Boolean;是登录窗体的。还有没写自己搞定。我主要是给你主窗体的思路
 
while&nbsp;Edit1.Text&lt;&gt;......&nbsp;do<br>begin<br>&nbsp;&nbsp;Edit1.Text:='';<br>&nbsp;&nbsp;Edit1.SetFocus;<br>end;
 
基本搞定了,还有请问一下密码输错时报错时为什么模式窗口不见了?确定后才又出现
 
下面是工程的源代码:<br>Application.Initialize;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;loginForm&nbsp;:=&nbsp;TloginForm.Create(nil);<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;loginForm.ShowModal&nbsp;=&nbsp;mrOK&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.CreateForm(TmainForm,&nbsp;mainForm);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.Run;<br>&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.Terminate;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;LoginForm.Close;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;Application.Run;<br>在登录窗体中,如果登录成功则添加如下一条语句就行了:<br>ModalResult&nbsp;:=&nbsp;mrOK;
 
花了一个星期的时间,天天冥思苦想,反复尝试,终于找到一种比较完美的方法,贴出来和大家共享:<br><br>procedure&nbsp;TForm4.FormCreate(Sender:&nbsp;TObject);<br>....<br>&nbsp;&nbsp;<br>begin<br><br>&nbsp;&nbsp;&nbsp;.......<br>&nbsp;&nbsp;&nbsp;adoconnection1.Close;<br><br>&nbsp;&nbsp;&nbsp;login:=Tlogin.Create(self);<br>&nbsp;&nbsp;&nbsp;login.ShowModal;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;运行菜单;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;end;<br><br><br>procedure&nbsp;Tlogin.Button1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;&nbsp;cmdstr,password:string;<br>&nbsp;&nbsp;&nbsp;<br>begin<br>&nbsp;&nbsp;&nbsp;trtm:=trtm+1;<br>&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(trtm&lt;=4)&nbsp;&nbsp;&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_id:=trim(login.edit1.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password:=trim(copy(login.edit2.text,1,6));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoconnection1.close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmdstr:=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;use&nbsp;xm&nbsp;select&nbsp;user_id,password,username&nbsp;from&nbsp;userrights&nbsp;';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmdstr:=cmdstr+'&nbsp;where&nbsp;&nbsp;ltrim(rtrim(user_id))='+''''+trim(user_id)+'''';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmdstr:=cmdstr+'&nbsp;and&nbsp;ltrim(rtrim(password))='+''''+trim(password)+'''';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adodataset1.CommandText:=cmdstr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adodataset1.Open;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(adodataset1.EOF)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application.MessageBox('你的输入不正确!','&nbsp;&nbsp;&nbsp;错误',IDOK);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(trtm&lt;4)then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login.close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login:=Tlogin.Create(self);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login.ShowModal;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//login.Edit1.Text:='';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//login.Edit2.Text:='';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//login.Edit1.SetFocus;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application.Terminate;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form4.Statusbar1.Panels[0].Text:='营业部';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form4.Statusbar1.Panels[2].Text:=adodataset1.FieldValues['user_id'];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form4.Statusbar1.Panels[3].Text:=adodataset1.FieldValues['username'];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application.Terminate;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login.Close;<br>&nbsp;&nbsp;&nbsp;end;<br>end;
 
后退
顶部