📄 login.pas
字号:
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DB, ADODB, ExtCtrls, QRCtrls, QuickRpt;
type
TLoginForm = class(TForm)
MEd_password: TMaskEdit;
BitBtn_Ok: TBitBtn;
BitBtn_Exit: TBitBtn;
Label2: TLabel;
Label1: TLabel;
Combo_name: TComboBox;
Image2: TImage;
ST_TS: TStaticText;
procedure BitBtn_OkClick(Sender: TObject);
procedure Ed_userKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure MEd_passwordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn_ExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Combo_nameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
private
logcount:integer;
{ Private declarations }
public
check: boolean; //检查密码输入是否正确
Ftimes: integer; //密码输入次数计数
procedure innt_operator;
{ Public declarations }
end;
var
LoginForm: TLoginForm;
implementation
uses MaimForm, DataModule, Unit_common_files;
{$R *.dfm}
procedure TLoginForm.innt_operator ;
var ADQ:TADOQuery;
begin
ADQ:=TADOQuery.Create(nil);
ADQ.Connection:=DB_module.ADOCon;
ADQ.SQL.Add('select * from login_user');
ADQ.Open;
while not ADQ.Eof do
begin
Combo_name.Items.Add(ADQ.fieldByName('user_loginname').AsString);
ADQ.Next;
end;
ADQ.Free ;
end;
procedure TLoginForm.BitBtn_OkClick(Sender: TObject);
var
checkpwdquery:TADOquery;
sqlstring:string;
begin
checkpwdquery:=TADOquery.Create(nil);
checkpwdquery.ConnectionString:=DB_module.ADOCon.ConnectionString;
try
sqlstring := 'select * from login_user where user_loginname=:username and user_password=:password';
with checkpwdquery do
begin
Close;
checkpwdquery.
sql.Clear;
sql.Add(sqlstring);
checkpwdquery.Parameters.ParamByName('username').Value:=Trim(Combo_name.Text);
checkpwdquery.Parameters.ParamByName('password').Value:=Trim(MEd_password.Text);
open;
if not checkpwdquery.IsEmpty then
begin
unit_common_files.CurrentUserName := trim(Combo_name.Text);
unit_common_files.CurrentPassword := FieldByName('user_password').Value ;
unit_common_files.CurrentID := FieldByName('user_ID').Value ;
unit_common_files.Currentturename := FieldByName('user_name').Value ;
mainform.N1.Enabled := FieldByName('award_1').Value ;
mainform.N19.Enabled := FieldByName('award_2').Value ;
mainform.N3.Enabled := FieldByName('award_3').Value ;
mainform.N4.Enabled := FieldByName('award_4').Value ;
LoginForm.Close;
application.ShowMainForm:=true;
end
else
begin
logcount := logcount + 1;
if logcount > 2 then
begin
messagebox(Application.Handle ,'对不起!三次输入口令不正确,系统将自动关闭。','余科华提示',MB_OK or MB_ICONEXCLAMATION);
halt;
end
else
begin
messagebox(Application.Handle ,'输入口令不正确,请重新输入!','余科华提示',MB_OK or MB_ICONEXCLAMATION);
ST_TS.Caption := '余科华提示:用户名或密码不正确,你还有'+inttostr(3-logcount)+'次机会。';
MEd_password.SetFocus ;
end;
end;
end;
finally
checkpwdquery.Free;
end;
end;
procedure TLoginForm.Ed_userKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key=13 then MEd_password.SetFocus;
end;
procedure TLoginForm.MEd_passwordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then bitbtn_ok.setfocus;
end;
procedure TLoginForm.BitBtn_ExitClick(Sender: TObject);
begin
ModalResult := mrCancel;
Close;
Application.Terminate;
end;
procedure TLoginForm.FormCreate(Sender: TObject);
begin
innt_operator;
end;
procedure TLoginForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action :=cafree;
LoginForm:=nil;
end;
procedure TLoginForm.Combo_nameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then MEd_password.SetFocus;
end;
procedure TLoginForm.FormShow(Sender: TObject);
begin
Combo_name.SetFocus ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -