📄 userlogin.pas
字号:
unit userLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ExtCtrls, TFlatButtonUnit,ADODB, DB;
type
TfrmLogin = class(TForm)
Bevel1: TBevel;
edtUserName: TEdit;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
btnLog: TFlatButton;
btnCancel: TFlatButton;
btnExit: TFlatButton;
edtPassWord: TEdit;
spLog: TADOStoredProc;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnLogClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure edtPassWordKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure edtUserNameKeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
private
function item_check():boolean; //检查输入项是否符合要求
function data_check():boolean; //验证用户
{ Private declarations }
public
{ Public declarations }
end;
var
frmLogin: TfrmLogin;
implementation
uses dbConn, usermgt;
{$R *.dfm}
procedure TfrmLogin.FormCreate(Sender: TObject);
begin
FirstLogin:=true; //在第一次创建时为真
end;
procedure TfrmLogin.FormShow(Sender: TObject);
begin
edtUserName.Text :='';
edtPassWord.Text :='';
end;
procedure TfrmLogin.btnLogClick(Sender: TObject);
var
czsj:TDateTime;
begin
//首先检查是否符合基本要求
if item_check()=false then
begin
Exit;
end;
//第二步,继续到数据库中检查 ,验证用户
if data_check()=true then
begin
CurrentOperateItem:='用户登陆';
czsj:=Now;
dbConn.SaveOperateLog(spLog,CurrentUserID,CurrentUser,czsj,CurrentOperateItem);
self.Hide ;
FirstLogin:= false; //已登陆了
frmUserManager.Show;
Close;
end;
end;
//*****************************************
// item_check() 检查输入项是否符合要求
//*****************************************
function TfrmLogin.item_check():boolean;
var
M_name:string;
M_pass:string;
begin
try
if edtUserName.Text ='' then
begin
MessageBox(0,'请输入用户名称', '用户登陆', 64);
EdtUserName.SetFocus;
exit;
end;
if EdtPassWord.Text ='' then
begin
MessageBox(0,'请输入用户密码', '用户登陆', 64);
EdtPassWord.SetFocus;
exit;
end;
item_check:=true;
except
On e:Exception Do begin
item_check:=false;
MessageBox(0,'','错误信息',64);
Close;
End;
end;
end;
//*****************************************
// data_check() 继续到数据库中检查 ,验证用户
//*****************************************
function TfrmLogin.data_check():boolean;
var
rs:TADODataSet;
i:integer;
begin
try
rs:=TADODataSet.Create(nil);
rs.Connection:=cn_public;
rs.CommandText:='select USERID,USERNAME,PASSWORD FROM photocheck.P_USER WHERE USERNAME='''+trim(edtUserName.text)+'''';
rs.Open;
if rs.Eof then
begin
messagebox(Handle,'无此用户,禁止非法用户登陆!','登陆',16);
data_check:=false;
exit;
end
else begin
if edtPassWord.Text=rs.FieldByName('PASSWORD').AsString then
begin
CurrentUser:=rs.FieldByName('USERNAME').AsString; //保存操作员信息
CurrentUserID:=rs.FieldByName('USERID').AsString;
data_check:=true;
end
else begin
messagebox(Handle,'用户密码错误,禁止非法登陆!','登陆',16);
EdtPassWord.SetFocus;
data_check:=false;
exit;
end;
end;
finally
rs.Close ;
end;
end;
procedure TfrmLogin.btnExitClick(Sender: TObject);
begin
//CurrentOperateItem:='用户退出登陆';
//dbConn.SaveOperateLog(spLog,CurrentUserID,CurrentUser,now,CurrentOperateItem);
Close;
Application.Terminate ;
end;
procedure TfrmLogin.btnCancelClick(Sender: TObject);
begin
CurrentOperateItem:='用户登陆取消';
dbConn.SaveOperateLog(spLog,CurrentUserID,CurrentUser,now,CurrentOperateItem);
self.Hide ;
frmUserManager.Show;
end;
procedure TfrmLogin.edtPassWordKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
btnLog.Click;
end;
procedure TfrmLogin.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TfrmLogin.edtUserNameKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edtPassWord.SetFocus ;
end;
procedure TfrmLogin.FormActivate(Sender: TObject);
begin
//根据是否为首次登陆情况来进行各个显示
if FirstLogin=true then
begin
btnExit.Visible := true;
btnCancel.Visible := false;
end
else
begin
btnCancel.Visible := true;
btnExit.Visible := false;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -