一个用户名检测程序,我希望的是在密码输入错误的情况下可以连续输入三次,然后退出,可是实际上我只要输入一次错误,结果就连续出现三次错误提示信息,而无法重新输入,为什么呢?procedure TForm1.Button1Click(Sender: TObject);
var
nameset,pass:string;
right_operator,right_manage,right_select:boolean;
i:integer;begin
nameset:=Edit1.Text;
Table1.Active:=True;
Table1.DisableControls;
i:=3;
while i>0 do
begin
Table1.IndexFieldNames:='name';
if Table1.FindKey([nameset]) then
if Table1.FieldValues['password']=Edit2.Text then
begin //如果用户名和密码正确,检查用户权限并授予相应权限
right_manage:=Table1.FieldByName('Right_manage').AsBoolean;
right_operator:=Table1.FieldByName('Right_operator').AsBoolean;
right_select:=Table1.FieldByName('Right_select').AsBoolean;
//给用户授权
if right_operator then form2.Button1.Enabled:=false;
if right_select then
begin
form3.n6.enabled:=false;
form3.N7.Enabled:=false;
form3.N8.Enabled:=false;
form2.Button2.Enabled:=false;
form2.Button3.Enabled:=false;
end;
Form2.show;
i:=-1; end
else application.MessageBox('用户名或密码错误','提示信息',MB_OK) ; i:=i-1;
edit1.Clear;
edit2.clear;
nameset:=Edit1.text;end;
if i=0 then
begin
showmessage('用户名或密码错误,请退出!');
close;
end
end;
var
nameset,pass:string;
right_operator,right_manage,right_select:boolean;
i:integer;begin
nameset:=Edit1.Text;
Table1.Active:=True;
Table1.DisableControls;
i:=3;
while i>0 do
begin
Table1.IndexFieldNames:='name';
if Table1.FindKey([nameset]) then
if Table1.FieldValues['password']=Edit2.Text then
begin //如果用户名和密码正确,检查用户权限并授予相应权限
right_manage:=Table1.FieldByName('Right_manage').AsBoolean;
right_operator:=Table1.FieldByName('Right_operator').AsBoolean;
right_select:=Table1.FieldByName('Right_select').AsBoolean;
//给用户授权
if right_operator then form2.Button1.Enabled:=false;
if right_select then
begin
form3.n6.enabled:=false;
form3.N7.Enabled:=false;
form3.N8.Enabled:=false;
form2.Button2.Enabled:=false;
form2.Button3.Enabled:=false;
end;
Form2.show;
i:=-1; end
else application.MessageBox('用户名或密码错误','提示信息',MB_OK) ; i:=i-1;
edit1.Clear;
edit2.clear;
nameset:=Edit1.text;end;
if i=0 then
begin
showmessage('用户名或密码错误,请退出!');
close;
end
end;
var
nameset,pass:string;
right_operator,right_manage,right_select:boolean;
i:integer;begin
nameset:=Edit1.Text;
Table1.Active:=True;
Table1.DisableControls;
i:=3;
while i>0 do
begin
Table1.IndexFieldNames:='name';
if Table1.FindKey([nameset]) then
if Table1.FieldValues['password']=Edit2.Text then
begin //如果用户名和密码正确,检查用户权限并授予相应权限
right_manage:=Table1.FieldByName('Right_manage').AsBoolean;
right_operator:=Table1.FieldByName('Right_operator').AsBoolean;
right_select:=Table1.FieldByName('Right_select').AsBoolean;
//给用户授权
if right_operator then form2.Button1.Enabled:=false;
if right_select then
begin
form3.n6.enabled:=false;
form3.N7.Enabled:=false;
form3.N8.Enabled:=false;
form2.Button2.Enabled:=false;
form2.Button3.Enabled:=false;
end;
Form2.show;
i:=-1; end
else application.MessageBox('用户名或密码错误','提示信息',MB_OK) ; i:=i-1;
edit1.Clear;
edit2.clear;
nameset:=Edit1.text;end;
if i=0 then
begin
showmessage('用户名或密码错误,请退出!');
close;
end
end;
procedure TloginForm.BitBtn1Click(Sender: TObject);
var
str,zhiwu: string;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * FROM jmtv_user where (用户名='''+edit1.Text+''')');
ADOQuery1.Open;
if ADOQuery1.RecordCount=0 then
begin
showmessage('不存在这个帐号');
exit;
end;
ADOQuery1.First;
str:=ADOQuery1.FieldByName('密码').Value;
if edit2.Text=str then
begin
islogin:=true;
close;
end
else if logincount<>3 then
begin
showmessage('密码错误');
edit2.Text:='';
edit2.SetFocus;
logincount:=logincount+1;
end;
if logincount=3 then close;end;
begin
application.MessageBox('用户名或密码错误','提示信息',MB_OK) ;
break;
end;
var
nameset,pass:string;
right_operator,right_manage,right_select:boolean;begin
i:=i+1;
nameset:=Edit1.Text;
Table1.Active:=True;
Table1.DisableControls;
Table1.IndexFieldNames:='name';
if Table1.FindKey([nameset]) then
if Table1.FieldValues['password']=Edit2.Text then
begin //如果用户名和密码正确,检查用户权限并授予相应权限
right_manage:=Table1.FieldByName('Right_manage').AsBoolean;
right_operator:=Table1.FieldByName('Right_operator').AsBoolean;
right_select:=Table1.FieldByName('Right_select').AsBoolean;
//给用户授权
if right_operator then form2.Button1.Enabled:=false;
if right_select then
begin
form3.n6.enabled:=false;
form3.N7.Enabled:=false;
form3.N8.Enabled:=false;
form2.Button2.Enabled:=false;
form2.Button3.Enabled:=false;
end;
Form2.show;
i:=-1; end
else
begin
if i=3 then
begin
showmessage('用户名或密码错误,请与管理员联系!');
close;
end;
application.MessageBox('用户名或密码错误','提示信息',MB_OK) ;
end; edit1.Clear;
edit2.clear;
nameset:=Edit1.text;end;
end;
谢谢大家了