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

📄 ulogin.pas

📁 delphi开发的人事信息管理系统,包括详细的软件开发文档
💻 PAS
字号:
unit uLogin;

interface

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

type
  TfrmLogin = class(TForm)
    Label1: TLabel;
    Panel1: TPanel;
    edtPassword: TEdit;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    cmbUserName: TComboBox;
    btnOK: TSpeedButton;
    btnCancel: TSpeedButton;

    procedure btnCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure edtPasswordKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmLogin: TfrmLogin;

implementation

uses Main,uPublic,uData;

{$R *.DFM}

//在确认按钮被点击后,检查操作者表中是否相应的操作人员和口令
procedure TfrmLogin.btnOKClick(Sender: TObject);
var
    Query : TADOQuery;
begin
    //如果验证输入的口令正确,则进入主操作界面
    try
        //检查操作人员表中是否有匹配记录
        Query := TADOQuery.Create(nil);
        Query.Connection := dmPer.acPer ;
        Query.SQL.Add('select * from Operator where UserName=:UserName and userpwd=:userpwd');

        Query.Parameters.ParamByName('UserName').Value := cmbUsername.Text ;
        Query.Parameters.ParamByName('userpwd').Value := edtpassword.Text ;

        Query.Open;
        if Query.RecordCount = 0 then
        begin
            MessageDlg('请输入正确的用户名和密码',mtError,[mbok],0);
            Exit;
        end;

        //根据不同的操作员级别,允许进行不同的功能操作
        if query.FieldByName('class').AsInteger =0 then
        begin
            //超级用户拥有全部权限
            mainform.menuSRight.Enabled :=true;
            mainform.menuPDepartment.Enabled :=true;
            mainform.menuPBasicSetting.Enabled := true;
            mainform.menuPDB.Enabled :=true;
            mainform.menuPChange.Enabled:= true;
        end;

        if  query.FieldByName('class').AsInteger =1 then
        begin
             //操作员用户拥有除"数据库管理"和"权限管理"外的全部权限
            mainform.menuSRight.Enabled :=false;
            mainform.menuPDepartment.Enabled :=true;
            mainform.menuPBasicSetting.Enabled := true;
            mainform.menuPDB.Enabled :=false;
            mainform.menuPChange.Enabled:= false;
        end;
         
        edtpassword.Text :='';     //密码信息要清空
        Query.Close;
        Query.Free;

        mainform.Show;
        frmLogin.close;
    except
        MessageDlg('连接数据库出错!',mtError,[mbok],0);
    end;
end;

procedure TfrmLogin.btnCancelClick(Sender: TObject);
begin
    ModalResult := mrCancel;
    frmLogin.Close ;
end;

//登陆窗体显示时,口令编辑框获得焦点
procedure TfrmLogin.FormShow(Sender: TObject);
begin
    edtPassword.SetFocus ;
end;

//窗体创建时,读取操作员表中的操作者名称
procedure TfrmLogin.FormCreate(Sender: TObject);
var
    Query : TADOQuery;
begin
    cmbusername.Clear ;
    try
        Query := TADOQuery.Create(nil);
        Query.Connection := dmPer.acPer ;
        Query.SQL.Add('select username from Operator ');
        Query.Open;
        if Query.RecordCount = 0 then
        begin
            MessageDlg('没有可以登陆的用户名',mtError,[mbok],0);
            Exit;
        end else
        begin
            Query.First ;
            while Query.Eof =false do
            begin
                cmbUserName.items.add(query.FieldByName('Username').asstring );
                Query.next;
            end
        end;
        Query.Close;
        Query.Free;
        cmbusername.ItemIndex  :=0 ;
    except
        MessageDlg('连接数据库出错!',mtError,[mbok],0);
    end;
end;

procedure TfrmLogin.edtPasswordKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if Key = 13 then
        btnOKClick(Sender);
end;

end.

⌨️ 快捷键说明

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