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

📄 ulogin.pas

📁 用于计算机专业程序设计 大家可以共同的分享. 如果喜欢请收藏
💻 PAS
字号:
unit Ulogin;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, Buttons, dbtables;

type
   TFrm_Login = class(TForm)
      Label1: TLabel;
      Label2: TLabel;
      E_name: TEdit;
      E_pass: TEdit;
      BitB_yes: TBitBtn;
      BitB_no: TBitBtn;
      procedure BitB_yesClick(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure BitB_noClick(Sender: TObject);
      procedure FormClose(Sender: TObject; var Action: TCloseAction);
   private
      { Private declarations }
      logintime: integer; //登录次数
      isclose: boolean; //是否关闭当前窗口
   public
      { Public declarations }
   end;

var
   Frm_Login: TFrm_Login;
implementation
uses UMain, UDM;
{$R *.dfm}

procedure TFrm_Login.BitB_yesClick(Sender: TObject);
var
   query: tquery;
begin
   //动态创建Query对象,实现人员编号和密码查询
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   //获取输入的人员编号和密码
   userid := E_name.text;
   password := E_pass.text;
   with query do
   begin
      Close;
      //查询人员编号是否存在
      sql.text := 'select * from tperson where id=''' + userid + '''';
      open;
      first;
      if eof then
         isclose := false //编号不存在
      else //编号正确
      begin
         if fieldbyname('ppwd').AsString <> password then
            isclose := false //用户密码不正确
         else
         begin
            username := fieldbyname('Pname').AsString; //人员姓名
            userrole := fieldbyname('Prole').AsString; //权限
            userdep := fieldbyname('Pdep').AsString; //部门
            isclose := true;
         end;
      end;
      free; //释放内存
   end;
   query := nil; //释放内存
   if isclose then
   begin
      ModalResult := mrOK;
      exit;
   end
   else
   begin
      logintime := logintime + 1;
      MessageBox(handle, '人员编号或密码有误,请重试!', '登录失败', MB_ICONSTOP + mb_ok);
      if logintime = 3 then
      begin
         isclose := true;
         ModalResult := mrCancel;
         exit;
      end;
      E_name.text := ''; //清空人员编号
      E_pass.text := ''; //清空密码
      exit;
   end;
end;

procedure TFrm_Login.FormCreate(Sender: TObject);
begin
   logintime := 0; //初始次数为0
   isclose := true; //允许关闭窗口
end;

procedure TFrm_Login.BitB_noClick(Sender: TObject);
begin
   ModalResult := mrCancel;
   exit;
end;

procedure TFrm_Login.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   if isclose then
      Action := Cafree //关闭窗口、释放内存
   else
      Action := caNone; //不关闭窗口
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -