[代码]密码最多输入三次出错退出

这个是登录窗口的一个验证机制,写法很多种,这是其中一种。

procedure TFrmOrderBy.BtnOrderClick(Sender: TObject);
begin
  if Length(EdtPassWord.Text) = 0  then
    Exit;
  with AQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select  pwdcompare(:Pass,loginpassword) from login where loginname=:LoginName');
    Parameters.ParamByName('Pass').Value := EdtPassWord.Text;
    Parameters.ParamByName('LoginName').Value := Trim(EdtLoginName.Text);
    Open;
    //密码验证成功进入主窗体
    if Fields[0].AsInteger = 1 then
    begin
      Self.Tag := 1;
      Self.Close;
    end
    else
    begin
      EdtPassWord.Clear;
      EdtPassWord.SetFocus;
      ShowMessage('密码错误');
      Inc(LoginCount);
    end;
    //如果密码验证三次不通过,退出系统
    if LoginCount >= 3 then
    begin
      Application.Terminate;
    end;
  end;
end; 
分享到: