📄 login.pas
字号:
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, DB, ADODB;
type
TFrmLogin = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
EdtPwd: TEdit;
BtnOk: TBitBtn;
BtnCancel: TBitBtn;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
LMsg: TLabel;
procedure FormCreate(Sender: TObject);
procedure EdtPwdChange(Sender: TObject);
procedure BtnOkClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
i:integer; //记录密码的输入次数;
implementation
uses global;
{$R *.dfm}
procedure TFrmLogin.FormCreate(Sender: TObject);
var
Fn:string;
begin
i:=0; //将密码是输入次数设置 0
LMsg.Caption :=format(sMsgEnterPwdChanceTime,['3']);
Fn:=ExtractFilePath(paramstr(0))+'Data\'+SDefDataBaseName;
self.Caption :=SFormLogin;
EdtPwd.Text :='';
EdtPwd.PasswordChar :='*';
with ADOConnection1 do
begin
if Connected then close; //如果己连接则关闭
LoginPrompt:=False; //将登录提示设为 不提示
ConnectionString:=format(SConnectString,[Fn,SDefDataBasePwd]);
open;
end;
end;
procedure TFrmLogin.EdtPwdChange(Sender: TObject);
begin
if trim(EdtPwd.Text)='' then
BtnOk.Enabled :=False
else
BtnOk.Enabled :=true;
end;
procedure TFrmLogin.BtnOkClick(Sender: TObject);
begin
inc(i);
with ADOQuery1 do
begin
close;
sql.Text :=format(SSQLTY0,[STLogin]);
open;
first;
if FieldValues[sFLoginPwd] =Encrypt(EdtPwd.Text) then
begin
LoginSucceed:=true ;
i:=0;
FrmLogin.Close;
end
else
LoginSucceed:=False;
close;
end;
LMsg.Caption :=format(sMsgEnterPwdChanceTime,[intToStr(3-i)]);
if i>=3 then close; // 输入错误密码三次则退出程序
end;
procedure TFrmLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADOConnection1.Close;
ADOQuery1.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -