CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请帮忙看看这段代码应该怎么修改呢?

楼主luckyboy97(幸运男孩)2002-12-17 10:40:07 在 Delphi / VCL组件开发及应用 提问

我想在下面的代码中加入输入密码错误三次就自动退出系统的功能,请各位帮忙看看我应该怎么加代码呢?  
  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

相关问题

  • 谁能帮忙修改这段代码?
  • 求一段广告代码.帮修改代码.
  • 求一段修改文件的修改时间和建立时间代码
  • 急需修改query结果集记录的一段代码!!!
  • 用代码怎么修改字段名称?
  • 求教一段修改计时器处理程序的代码
  • 请帮我修改一下这段代码。。
  • 请高手们帮我修改一下下面这段代码
  • 请教:该如何修改该段代码
  • 如何用代码修改表中字段的顺序

关键词

  • 代码
  • 密码
  • 用户
  • frmmain
  • fieldbyname
  • asstring
  • visible
  • edit2
  • 变量
  • 密码错误

得分解答快速导航

  • 帖主:luckyboy97
  • jy_1201
  • jy_1201
  • jiaclassmate
  • xzgyb
  • kaolaxiong

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo