📄 login.pas
字号:
unit login;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TLoginForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
EditLoginName: TEdit;
EditPassWord: TEdit;
ButtonOk: TButton;
ButtonCancel: TButton;
procedure ButtonOkClick(Sender: TObject);
procedure ButtonCancelClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm: TLoginForm;
LoginFlag:integer;
inputtimes:Integer;
LoginName,FullName,CodeComp,CodeSite,Secruity: String;
LoginTime:TdateTime;
implementation
uses LoginData, LoginHit, LoginError;
{$R *.DFM}
procedure TLoginForm.ButtonOkClick(Sender: TObject);
begin
Try
if Length(EditLoginname.text)=0 then
FormHit.ShowModal;
if inputtimes <= 3 then
Begin
With SystemData.QueryUser Do
begin
Close;
Unprepare;
With Sql Do
Begin
Clear;
Add('Select * From system_user_info Where (login_name=:name) and (pass_word=:pass_word) and (privilege=:sa1 Or privilege=:sa2)')
End;
RequestLive:=True;
ParamByName('name').AsString:=EditLoginname.Text;
ParamByName('pass_word').AsString:=EditPassWord.Text;
ParamByName('sa1').AsString:='系统管理员';
ParamByName('sa2').AsString:='系统业务经理';
PrePare;
Open;
End;
inputtimes:=inputtimes+1;
End;
If SystemData.QueryUser.RecordCount=1 then
begin
LoginFlag:=1;
CodeComp:=SystemData.QueryUser.FieldByName('comp_code').AsString;
CodeSite:=SystemData.QueryUser.FieldByName('site_code').AsString;
FullName:=SystemData.QueryUser.FieldByName('username').AsString;
LoginName:=SystemData.QueryUser.FieldByName('login_name').AsString;
Secruity:=SystemData.QueryUser.FieldByName('privilege').AsString;
SystemData.QueryUser.Edit;
SystemData.QueryUser.FieldByName('login_status').AsString:='在线';
SystemData.QueryUser.Post;
SystemData.QueryUser.Close;
With SystemData.QueryLogin Do
begin
Close;
Unprepare;
With Sql Do
Begin
Clear;
Add('Select * From user_login_info Where login_name=:loginname');
End;
RequestLive:=True;
ParamByName('loginname').AsString:='****';
prepare;
Open;
End;
SystemData.QueryLogin.Insert;
LoginTime:=Now;
SystemData.QueryLogin.FieldByName('login_name').Value:=EditLoginname.Text;
SystemData.QueryLogin.FieldByName('login_time').Value:=LoginTime;
SystemData.QueryLogin.FieldByName('exit_time').Value:=LoginTime;
SystemData.QueryLogin.FieldByName('username').Value:=FullName;
SystemData.QueryLogin.Post;
SystemData.QueryLogin.Close;
Close;
end
else if SystemData.QueryUser.RecordCount<>1 then
Begin
If inputtimes<3 Then
FormHit.ShowModal
Else
begin {输入超过三次,程序终止。}
LoginFlag:=0;
FormError.ShowModal;
Close;
end;
End;
SystemData.QueryUser.Close;
SystemData.QueryLogin.Close;
Except
On E:Exception Do
Begin
ShowMessage('数据库连接失败,请检验网络连接是否正常');
Application.Terminate;
End;
End;
End;
procedure TLoginForm.ButtonCancelClick(Sender: TObject);
begin
LoginFlag:=0;
end;
procedure TLoginForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
If key=#13 then { 判断是按执行键}
Begin { 不是在TDbgrid控件内}
key:=#0;
perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
End;
end;
procedure TLoginForm.FormCreate(Sender: TObject);
begin
LoginFlag:=0;
inputtimes:=0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -