请帮忙看看这段代码应该怎么修改呢?
我想在下面的代码中加入输入密码错误三次就自动退出系统的功能,请各位帮忙看看我应该怎么加代码呢?
procedure Tfrmlogin.Button1Click(Sender: TObject);
begin
with table1 do
begin
setkey;
fieldbyname('name').asstring:=edit1.text;
if gotokey then
if edit2.text=fieldbyname('pass').asstring then
begin
frmlogin.close;
if fieldbyname('a1').asstring='是' then
frmmain.N11.visible:=true
else
frmmain.N11.visible:=false;
if fieldbyname('b1').asstring='是' then
frmmain.N111.visible:=true
else
frmmain.N111.visible:=false;
if fieldbyname('c1').asstring='是' then
frmmain.N21.visible:=true
else
frmmain.N21.visible:=false;
if fieldbyname('c11').asstring='是' then
frmmain.N31.visible:=true
else
frmmain.N31.visible:=false;
end
else
begin
showmessage('密码错误,请重新输入!');
edit2.text:='';
edit2.SetFocus();
end
else
begin
showmessage('该用户不存在,请确认!');
edit1.text:='';
edit2.text:='';
edit1.SetFocus();
end
end
end;
问题点数:10、回复次数:9Top
1 楼jy_1201(大师,他从天空来!)回复于 2002-12-17 10:42:59 得分 1
定义一个变量赋初值,用户不存在时,该值加1,再判断该变量,如果为3,则退出就行了Top
2 楼luckyboy97(幸运男孩)回复于 2002-12-17 10:52:31 得分 0
我现在是要判定用户存在,密码输入三次错误就退出,用户不存在不需要考虑Top
3 楼jy_1201(大师,他从天空来!)回复于 2002-12-17 10:58:43 得分 1
那就用户存在,密码错误时,变量值加1就行了Top
4 楼luckyboy97(幸运男孩)回复于 2002-12-17 11:01:19 得分 0
我试过了,但是一直没有做成功,你能帮我将代码加到里面吗?谢谢了Top
5 楼jiaclassmate(jia)回复于 2002-12-17 11:07:55 得分 4
procedure Tfrmlogin.Button1Click(Sender: TObject);
var
count : integer;
begin
count := 0;
with table1 do
begin
setkey;
fieldbyname('name').asstring:=edit1.text;
if gotokey then
if edit2.text=fieldbyname('pass').asstring then
begin
frmlogin.close;
if fieldbyname('a1').asstring='是' then
frmmain.N11.visible:=true
else
frmmain.N11.visible:=false;
if fieldbyname('b1').asstring='是' then
frmmain.N111.visible:=true
else
frmmain.N111.visible:=false;
if fieldbyname('c1').asstring='是' then
frmmain.N21.visible:=true
else
frmmain.N21.visible:=false;
if fieldbyname('c11').asstring='是' then
frmmain.N31.visible:=true
else
frmmain.N31.visible:=false;
end
else
begin
showmessage('密码错误,请重新输入!');
inc(count);
if count = 3 then
Application.Terminate;
edit2.text:='';
edit2.SetFocus();
end
else
begin
showmessage('该用户不存在,请确认!');
inc(count);
if count = 3 then
Application.Terminate;
edit1.text:='';
edit2.text:='';
edit1.SetFocus();
end
end
end;
Top
6 楼luckyboy97(幸运男孩)回复于 2002-12-17 11:18:40 得分 0
这种方法我试过了,不行,应该是判定的位置没有对,但是我不知道要怎么做Top
7 楼xzgyb(老达摩)回复于 2002-12-17 11:34:42 得分 1
var
count : integer;
作为全局变量
放procedure Tfrmlogin.Button1Click(Sender: TObject);的上边Top
8 楼luckyboy97(幸运男孩)回复于 2002-12-17 12:06:12 得分 0
不行的,就没有办法解决吗?各位Top
9 楼kaolaxiong(考拉熊)回复于 2002-12-18 13:28:58 得分 3
在Private 后定义变量:i_LogCount:integer;
在frmlogin的Create方法中设置初始值为0;
procedure Tfrmlogin.Button1Click(Sender: TObject);
begin
with table1 do
begin
setkey;
fieldbyname('name').asstring:=edit1.text;
if gotokey then
if edit2.text=fieldbyname('pass').asstring then
begin
frmlogin.close;
if fieldbyname('a1').asstring='是' then
frmmain.N11.visible:=true
else
frmmain.N11.visible:=false;
if fieldbyname('b1').asstring='是' then
frmmain.N111.visible:=true
else
frmmain.N111.visible:=false;
if fieldbyname('c1').asstring='是' then
frmmain.N21.visible:=true
else
frmmain.N21.visible:=false;
if fieldbyname('c11').asstring='是' then
frmmain.N31.visible:=true
else
frmmain.N31.visible:=false;
end
else
begin
showmessage('密码错误,请重新输入!');
i_LogCount :=i_LogCount+1;
if ( i_LogCount>=3 ) then begin
table1.close;
application.Terminate;
end;
edit2.text:='';
edit2.SetFocus();
end
else
begin
showmessage('该用户不存在,请确认!');
edit1.text:='';
edit2.text:='';
edit1.SetFocus();
end
end
end;
试一试吧
Top




