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

📄 login.pas

📁 Delphi开发的人事管理系统
💻 PAS
字号:
unit Login;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Buttons, Registry, DB, RSGLCommon, ADODB;

type
  TLoginForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    bbtnOk: TBitBtn;
    bbtnCancel: TBitBtn;
    edtPassword: TEdit;
    cbUserName: TComboBox;
    adoq: TADOQuery;
    adocLogin: TADOConnection;
    procedure bbtnOkClick(Sender: TObject);
    procedure bbtnCancelClick(Sender: TObject);
    procedure cbUserNameExit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FPassword: array of string;
    function InitUserList: boolean;
  public
    { Public declarations }
    destructor destroy;override;
  end;

implementation

{$R *.DFM}

procedure TLoginForm.FormCreate(Sender: TObject);
var
  l_File: string;
begin
  l_File := DataPath + conRSGLDataFile;
  if not FileExists(l_File) then
  begin
    ShowMessage('文件不存在!无法打开数据库!');
    Exit;
  end;

  with adocLogin do
  begin
    ConnectionString := CNT_ConnectString;
    ConnectionString := Format(ConnectionString, [l_File]);
    Connected := True;
  end;
  InitUserList;
end;

function TLoginForm.InitUserList:boolean;
begin
  Result := False;
  cbUserName.Items.Clear;
  with adoq do
  begin
    Sql.Text := 'Select * from Login';
    Open;
    First;
    while not Eof do
    begin
      cbUserName.Items.Add(FieldByName('UserName').AsString);
      SetLength(FPassword, Length(FPassword) + 1);
      FPassWord[High(FPassWord)] := FieldByName('Password').AsString;
      Next;
    end;
    Close;
  end;
  result := True;
  cbUserName.ItemIndex := 0;
  edtPassword.Text := '';
end;

procedure TLoginForm.bbtnOkClick(Sender: TObject);
begin
  if cbUserName.ItemIndex = -1 then
  begin
    ShowMessage('不存在的用户!');
    cbUserName.SetFocus;
    cbUserName.SelectAll;
  end
  else begin
    if SameText(edtPassword.Text, FPassword[cbUserName.ItemIndex]) then
    begin
      ModalResult := mrOk;
    end
    else
      ModalResult := mrCancel;
  end;
end;

procedure TLoginForm.bbtnCancelClick(Sender: TObject);
begin
  PostQuitMessage(0);
end;


destructor TLoginForm.destroy;
begin
  if adocLogin.Connected then adocLogin.Close;
  FPassWord := nil;
  inherited;
end;

procedure TLoginForm.cbUserNameExit(Sender: TObject);
var
  Positon:integer;
begin
  Positon := cbUserName.Items.IndexOf(cbUserName.Text);
  if Positon > -1 then
    cbUserName.ItemIndex := Positon
  else
    if ActiveControl = EdtPassWord then
    begin
      ShowMessage('不存在的用户!');
      cbUserName.SetFocus;
      cbUserName.SelectAll;
    end;
end;

end.

⌨️ 快捷键说明

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