📄 ulogin.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 + -