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

📄 login.pas

📁 delphi作得信息业进销存源码.功能全面,运行稳定.
💻 PAS
字号:
unit Login;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, Buttons, StdCtrls, iniFiles;

type
  TfrmLogin = class(TForm)
    Label2: TLabel;
    Label3: TLabel;
    cbCode: TComboBox;
    edtPassword: TEdit;
    Label1: TLabel;
    Image1: TImage;
    btnOk: TBitBtn;
    btnCancel: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure btnOkClick(Sender: TObject);
    procedure cbCodeChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmLogin: TfrmLogin;

implementation

uses Dm, Main, Common;

{$R *.DFM}

//Form.Create
procedure TfrmLogin.FormCreate(Sender: TObject);
begin
  //Append User 'SYS'
  with Data.Tmp do
  begin
    Close;
    CommandText := 'select * from AppUser where uCode=''SYS''';
    Open;
    if IsEmpty then
    begin
      Close;
      CommandText := 'insert into AppUser (uCode, uName) values (''SYS'',''管理员'')';
      Execute;
    end;
  end;
  //Set cbCode
  with Data.Tmpl do
  begin
    Close;
    CommandText := 'select uCode from AppUser order by uCode';
    Open;
    cbCode.Items.Clear;
    while not Eof do
    begin
      cbCode.Items.Add(Fields[0].AsString);
      Next;
    end;
    Close;
  end;
end;

//Form.Show
procedure TfrmLogin.FormShow(Sender: TObject);
var
  iniFile: TIniFile;
begin
  //Computer Name
  pstrComputerName := GetComputerName;
  //Load cbCode
  iniFile := TiniFile.Create(ExtractFilePath(Application.ExeName) +
    'System\Login.ini');
  cbCode.Text :=  iniFile.ReadString(pstrComputerName, 'uCode', '');
  btnOk.Enabled := cbCode.Text <> '';
end;

//Form.KeyDown
procedure TfrmLogin.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_RETURN then
    Perform(WM_NEXTDLGCTL, 0, 0);
end;

//Form.Close
procedure TfrmLogin.FormClose(Sender: TObject; var Action: TCloseAction);
var
  iniFile: TIniFile;
begin
  iniFile := TiniFile.Create(ExtractFilePath(Application.ExeName) +
    'System\Login.ini');
  iniFile.WriteString(pstrComputerName, 'uCode', cbCode.Text);
end;

//btnOk.Click
procedure TfrmLogin.btnOkClick(Sender: TObject);
begin
  with Data.Tmp do
  begin
    Close;
    CommandText := 'select * from AppUser ' +
      'where uCode = ''' + cbCode.Text + '''';
    Open;
    if not Eof then
    begin
      if edtPassword.Text = FieldByName('uPassword').AsString Then
      begin
        //Set Public Var
        pintUserID := FieldByName('ID').AsInteger;
        pstrUserCode := FieldByName('uCode').AsString;
        pstrUserName := FieldByName('uName').AsString;
        pstrUserPassword := FieldByName('uPassword').AsString;
        pstrUserGroup := FieldByName('gName').AsString;
        //Log
        Close;
        CommandText := 'insert into AppLog (uName, cName, CZ, RQ, SJ) ' +
          'values (''' + pstrUserName + ''', ' +
          '''' + pstrComputerName + ''', ' +
          '''进入系统'', ' +
          '''' + FormatDateTime('yyyy-mm-dd', Date) + ''', ' +
          '''' + FormatDateTime('hh:nn', Time) + ''')';
        Execute;
        //Ok
        self.ModalResult := MROK;
        Close;
      end
      else
      begin
        Application.Messagebox('无效的密码, 请重新输入!', '系统登录', MB_OK+MB_ICONERROR);
        edtPassword.Tag := edtPassword.Tag + 1;
        edtPassword.SetFocus ;
      end
    end
    else
    begin
      Application.Messagebox('无效的用户代码,请重新输入!', '系统登录', MB_OK+MB_ICONERROR);
      cbCode.Tag := cbCode.Tag + 1;
      cbCode.SetFocus;
    end;
  end;
  if ( cbCode.Tag > 4 ) or ( edtPassword.Tag > 4 ) Then
    Close;
end;

//cbCode.Change
procedure TfrmLogin.cbCodeChange(Sender: TObject);
begin
  btnOk.Enabled := cbCode.Text <> '';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -