⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitpassword.~pas

📁 一个不错的系统
💻 ~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 count(*) as MAXNO from Employee');
//    Open;
//    if FieldByName('MAXNO').AsInteger<30 then 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;
//    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 + -