📄 unitpassword.pas
字号:
unit UnitPassword;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, UnitCommon, ExtCtrls;
type
TfrmPassword = class(TForm)
Panel1: TPanel;
LblAccount: TLabel;
LblPassword: TLabel;
EdtPassword: TEdit;
BBtnOK: TBitBtn;
BBtnCancel: TBitBtn;
Image1: TImage;
Label1: TLabel;
cmbAccount: TComboBox;
procedure FormCreate(Sender: TObject);
procedure EdtPasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BBtnOKClick(Sender: TObject);
procedure BBtnCancelClick(Sender: TObject);
procedure cmbAccountKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbAccountEnter(Sender: TObject);
private
IntCount:Integer;
function ChkPassword(PAccount, PPassword: String):TUsers;
public
end;
var
frmPassword: TfrmPassword;
implementation
uses UnitDatabase;
{$R *.dfm}
function TfrmPassword.ChkPassword(PAccount, PPassword: String): TUsers;
begin
Result.Account:='';
Result.Name:='';
Result.Rule:='';
Result.Path:=Users.Path;
with DMMain.ADOQRS1 do begin
Close;
SQL.Clear;
SQL.Add('select MPassword,MRule,MName from Users where RTrim(MAccount)='''+PAccount+'''');
Open;
if not EOF then
if hf_decrypt(Trim(FieldByName('MPassword').AsString))=PPassword then begin
Result.Account:=PAccount;
Result.Name:=Trim(FieldByName('MName').AsString);
Result.Rule:=Trim(FieldByName('MRule').AsString);
end;
Close;
end;
end;
procedure TfrmPassword.FormCreate(Sender: TObject);
begin
with DMMain.ADOConn do begin
Connected:=false;
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'DAT\'+Users.Path+'\HFEIS.mdb;Persist Security Info=False;Jet OLEDB:Database Password=19761227';
try
Connected:=true;
except
raise Exception.Create('数据库无法打开。');
end;
end;
IntCount:=1;
end;
procedure TfrmPassword.EdtPasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then BBtnOKClick(Sender);
end;
procedure TfrmPassword.BBtnOKClick(Sender: TObject);
begin
Users:=ChkPassword(Trim(cmbAccount.Text),Trim(EdtPassword.Text));
if Users.Rule<>'' then
frmPassword.Close
else
if IntCount<3 then begin
MessageBox(Handle,'密码无效。 ','系统警告',48);
cmbAccount.SetFocus;
Inc(IntCount);
end else begin
MessageBox(Handle,'密码无效,按任意键退出。','系统警告',48);
Users.Rule:='Fail';
frmPassword.Close;
end;
end;
procedure TfrmPassword.BBtnCancelClick(Sender: TObject);
begin
frmPassword.Close;
end;
procedure TfrmPassword.cmbAccountKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmPassword.cmbAccountEnter(Sender: TObject);
begin
DMMain.ADOQRS1.Close;
DMMain.ADOQRS1.SQL.Text:='select distinct MAccount from Users';
DMMain.ADOQRS1.Open;
with cmbAccount do begin
Items.Clear;
while not DMMain.ADOQRS1.Eof do begin
Items.Add(Trim(DMMain.ADOQRS1.FieldByName('MAccount').AsString));
DMMain.ADOQRS1.Next;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -