📄 unitlogin.~pas
字号:
unit UnitLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables,QDialogs, jpeg, ExtCtrls;
type
TFormLogin = class(TForm)
EditUserName: TEdit;
EditPassword: TEdit;
ButtonYes: TButton;
ButtonCancel: TButton;
Database1: TDatabase;
Table1: TTable;
Image1: TImage;
Label1: TLabel;
LabelUserName: TLabel;
LabelPassword: TLabel;
Label2: TLabel;
LabelAffirm: TLabel;
EditAffirm: TEdit;
ButtonRegister: TButton;
ButtonReturn: TButton;
procedure ButtonYesClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ButtonCancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Label2Click(Sender: TObject);
procedure ButtonRegisterClick(Sender: TObject);
procedure ButtonReturnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormLogin: TFormLogin;
//登录验证标志
LoginFlag:Boolean;
i:integer=1;
implementation
uses UnitMain;
{$R *.dfm}
procedure TFormLogin.ButtonYesClick(Sender: TObject);
begin
//打开表
Table1.open();
//移动到首记录
Table1.First();
//在User表中逐一匹配用户名和密码
while(Table1.Eof=false)do
begin
//检查用户名和密码
if(Table1.FieldValues['Name']=EditUserName.Text) and
(Table1.FieldValues['Passwd']=EditPassword.Text)then
begin
//登录验证标志为Ture
LoginFlag:=true;
//关闭登录框(self代表当前类的自身实例)
self.Close();
Exit;
end;
//如果匹配不正确,则匹配下一记录
Table1.Next();
end;
//显示提示信息
if(LoginFlag=false)then
begin
//显示确认提示框(==<注意要添加‘QDialogs‘单元)
MessageDlg('用户名或密码错误!',mtInformation
,[mbOK],0,mbOK);
editUserName.Text :='';
editPassword.Text :='';
i:=i+1;
if i>3 then
begin
//显示确认提示框(==<注意要添加‘QDialogs‘单元)
MessageDlg('你的输入次数已超过三次,系统将自动关闭!',mtInformation
,[mbOK],0,mbOK);
FormLogin.Close() ;
end;
end;
end;
procedure TFormLogin.FormShow(Sender: TObject);
begin
//登录验证标志
LoginFlag:=false;
end;
procedure TFormLogin.ButtonCancelClick(Sender: TObject);
begin
FormMain.Close();
end;
procedure TFormLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if LoginFlag=false then
FormMain.Close();
end;
procedure TFormLogin.Label2Click(Sender: TObject);
begin
LabelAffirm.Visible :=true;
EditAffirm.Visible :=true;
ButtonRegister.Visible :=true;
ButtonReturn.Visible :=true;
ButtonYes.Visible :=false;
ButtonCancel.Visible :=false;
EditUserName.Text:='';
EditPassword.Text:='';
EditAffirm.Text:='';
end;
procedure TFormLogin.ButtonRegisterClick(Sender: TObject);
begin
//打开表
Table1.open();
//移动到首记录
Table1.First();
//在User表中逐一匹配用户名和密码
while(Table1.Eof=false)do
begin
//检查用户名
if(Table1.FieldValues['Name']=EditUserName.Text)then
begin
application.MessageBox('用户名已存在','出错信息',0);
editUserName.Text:='';
editPassword.Text:='';
editAffirm.Text:='';
end;
//如果匹配不正确,则匹配下一记录
Table1.Next();
end;
if length(editUserName.Text)=0 then
begin
application.MessageBox('请输入用户名','输入用户信息',0);
editUserName.SetFocus;
end
else if length(editPassword.Text)=0 then
begin
application.MessageBox('请输入密码','输入密码',0);
editPassword.SetFocus;
end
else if editPassword.Text<>editAffirm.Text then
begin
application.MessageBox('您输入的密码和确认密码不一致','输入用户信息',0);
editAffirm.Text :='';
end
else
begin
//往表中追加一行
Table1.Append();
table1.fieldbyname('Name').value:=editUserName.text;
table1.fieldbyname('Passwd').value:=editPassword.text;
//保存数据库的修改
Table1.ApplyUpdates();
table1.close();
application.MessageBox('用户名与密码已保存','用户提示信息',0);
end;
end;
procedure TFormLogin.ButtonReturnClick(Sender: TObject);
begin
LabelAffirm.Visible :=false;
EditAffirm.Visible :=false;
ButtonRegister.Visible :=false;
ButtonReturn.Visible :=false;
ButtonYes.Visible :=true;
ButtonCancel.Visible :=true;
EditUserName.Text:='';
EditPassword.Text:='';
EditAffirm.Text:='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -