⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitlogin.pas

📁 delphi数据库基本利用
💻 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 + -