两种登录界面验证写法

效果:如果登陆正确跳转到主界面,如果登陆不进去关闭或者重新登陆。

第1种思路:同时验证账号和密码是否对再判断,只判断一种情况即可;即都不对的时候提示;

procedure TFLogin.btn1Click(Sender: TObject);   //确认按钮
begin
 with frmDataPool.qry用户账号表 do
 begin
   Close;
   SQL.Text:='select * from 用户账号表 where admid = ' + QuotedStr(edtAdmid.Text) + ' AND admps = ' + QuotedStr(edtAdmps.Text);
   Open;
 end;
 if frmDataPool.qry用户账号表.IsEmpty then  //如果账号密码查不到,说明账号不存在
 begin
   ShowMessage('账号不存在');
   Exit;
 end;
  Self.Close;
end;

procedure TFLogin.btn2Click(Sender: TObject);
begin
if MessageDlg('确定退出吗,退出后程序将关闭', mtConfirmation , [mbYes,mbNo],0)=mrYes then
begin
FLogin.ModalResult:= mrCancel; //对话框mrcancel返回
form3.Close;
end
else
FLogin.ModalResult:=0;
end;

第2种方法:分别判断账号是否存在,密码是否错误

procedure TFLogin.btn1Click(Sender: TObject);
begin
with frmDataPool.qry用户账号表 do
begin
  Close;
  SQL.Text:='select * from 用户账号表 where admid = :admid ';
  Parameters.ParamByName('admid').Value:=edtAdmid.Text;    //为admin参数赋值;
  Open;
end;
  if frmDataPool.qry用户账号表['admps']=null then  //如果账号查找不到,说明账号错
  begin
    ShowMessage('账号不存在');
    Exit;
  end;
  if frmDataPool.qry用户账号表['admps'] <> edtadmps.Text then
  begin
    ShowMessage('密码错');
    exit;
  end;
  FLogin.ModalResult:=mrOk;//对话框mrok返回

end;


procedure TFLogin.btn2Click(Sender: TObject);
begin
 if MessageDlg('确定要退出?',mtConfirmation,[mbYes,mbNo],0)=mryes then
 begin
 FLogin.ModalResult:=mrCancel ;
 Form3.Close;
 end
else
 FLogin.ModalResult:=0;
end;

附注:

在主窗口的onactive事件中添加:

procedure TForm3.FormActivate(Sender: TObject);
begin
 if FLogin.showmodal=mrok then
  form3.show;
end;

  

原文地址:https://www.cnblogs.com/ddxxxb/p/6879679.html