📄 unitlog.pas
字号:
unit UnitLog;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls,ADODB, jpeg, Buttons;
type
TfrmLogin = class(TForm)
StatusLogin: TStatusBar;
Timer1: TTimer;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
edtuser: TEdit;
edtpsw: TEdit;
bbtnLogin: TBitBtn;
bbtnExit: TBitBtn;
procedure Timer1Timer(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure edtuserChange(Sender: TObject);
procedure edtuserKeyPress(Sender: TObject; var Key: Char);
procedure edtpswKeyPress(Sender: TObject; var Key: Char);
procedure bbtnLoginClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
private
{ Private declarations }
public
{ }
end;
var
frmLogin: TfrmLogin;
icount : integer; //计数器,用来记录登录失败的次数,三次登录失败系统自动关闭
adoqry : TADOQuery;
implementation
uses UnitADOConn;
{$R *.dfm}
{
*************************************************************************************
函数名称: 时间控制事件
功能描述: 显示状态栏的信息
输入参数: 无
输出参数: 无
返回 值: 无
说 明:
*************************************************************************************
}
procedure TfrmLogin.Timer1Timer(Sender: TObject);
begin //状态栏显示
statuslogin.Panels[0].Text := '时间:';
statuslogin.Panels[1].Text := formatdatetime('YYYY-MM-DD hh:mm:ss',now);
end;
procedure TfrmLogin.btnExitClick(Sender: TObject);
begin
close;
end;
{
*************************************************************************************
函数名称: 用户名文本框change事件
功能描述: 只有输入六位用户名,登录按钮才能生效,不然,灰白显示
输入参数: 无
输出参数: 无
返回 值: 无
说 明:
*************************************************************************************
}
procedure TfrmLogin.edtuserChange(Sender: TObject);
begin
if length(edtuser.Text)=6 then
bbtnLogin.Enabled := true
else
bbtnLogin.Enabled := false;
end;
procedure TfrmLogin.edtuserKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
edtpsw.SetFocus;
end;
procedure TfrmLogin.edtpswKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bbtnLogin.Click;
end;
{
*************************************************************************************
函数名称: 登录按钮单击事件
功能描述: 只有输入正确的用户名、密码,系统才允许进入
输入参数: 无
输出参数: 无
返回 值: 无
说 明:
*************************************************************************************
}
procedure TfrmLogin.bbtnLoginClick(Sender: TObject);
begin
if edtPsw.Text='' then
begin
showmessage('密码不能为空');
//bbtnLogin.Cancel := true;
icount := icount+1;
if icount=3 then //三次登录失败,系统将自动关闭
begin
showmessage('对不起!您无权登录');
close;
end;
exit;
end
else
begin
try
iniado;
adoqry := TADOQuery.Create(nil);
adoqry.Connection := adoconn;
adoqry.SQL.Text := 'select * from TUser where UName=''' + edtuser.Text + ''' and UPassWord=''' + edtpsw.Text + '''';
adoqry.Open;
if adoqry.RecordCount<>0 then
begin
bbtnLogin.ModalResult := mrOk; //登录成功后将登录按钮的modalResult值置为mrOK,将返回一个值给主窗体
end
else
begin
showmessage('用户名或密码错误');
edtpsw.Text := '';
icount := icount+1;
if icount=3 then
begin
showmessage('对不起!您无权登录');
close;
end;
end;
adoqry.Close;
except
on e:exception do
showmessage('登录失败');
end;
end;
end;
procedure TfrmLogin.bbtnExitClick(Sender: TObject);
begin
if MessageDlg('您是否要退出登陆?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
self.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -