回 帖 发 新 帖 刷新版面

主题:登录请教

本人在做登录模块时碰到如下问题:
在输入的用户名和密码错误的情况下,设置了显示输入错误的提醒对话框,单现在在提醒出错后,自动退出了系统,而不是聚焦到输入用户名的Edit1组件中,
程序代码如下:
procedure Tlogin.BitBtn1Click(Sender: TObject);
begin
     with data.ADOQuery1 do
     begin
     close;
     sql.Clear;
     sql.add('select * from 操作员表 where (操作员姓名=:a) and(操作员密码=:b)');
     parameters.ParamByName('a').Value:=trim(Edit1.Text);
     parameters.ParamByName('b').Value:=trim(Edit2.Text);
     open;
     end;
     if data.ADOQuery1.RecordCount>0 then
     begin
     czymc:=data.ADOQuery1.fieldbyname('操作员姓名').AsString;
     m:=True;
     Edit1.clear;
     Edit2.clear;
     close;
     end
     else
     begin
     if i<3 then
     begin
     Application.MessageBox('用户名称或密码不正确,请重新输入。','提示',0+64);
     Edit1.Clear;
     Edit2.Clear;
     Edit1.setfocus;此处有不正确的时候便聚焦到Edit1,请问为什么不能实现效果
     Inc(i);
     end
     else
     begin
     Application.MessageBox('对不起,您无权使用本系统。','提示',0+64);
     Application.Terminate;
     end;
  end;
end;
其中i: integer = 0;
  m: Boolean = False;//防止用户关闭登录窗口进入系统
czymc为引用主窗体里申明的一个变量。

回复列表 (共1个回复)

沙发

上述有两个close;第一个改为ADOQuery1.close
第二个不知是ADOQuery1.close;如果是改ADOQuery1.close
如果不是就去除,
另外你的IF 和else 处理得不清晰,造成Application.Terminate提前执了行了
,请理清吧


我来回复

您尚未登录,请登录后再回复。点此登录或注册