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

📄 datalogin.pas

📁 DELPHI 编写个人工作计划事务管理软件
💻 PAS
字号:
unit DataLogin;

interface

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

type
  TLoginForm = class(TForm)
    ED_UserName: TEdit;
    ED_PassWord: TEdit;
    LB_UserName: TLabel;
    LB_PassWord: TLabel;
    IsokBut: TBitBtn;
    CennalBut: TBitBtn;
    UADOQuery: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ED_UserNameChange(Sender: TObject);
    procedure ED_UserNameKeyPress(Sender: TObject; var Key: Char);
    procedure ED_PassWordKeyPress(Sender: TObject; var Key: Char);
    procedure IsokButClick(Sender: TObject);
    procedure CennalButClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

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

var
  LoginForm: TLoginForm;
  LoginIsok : Boolean;             //==== 标记用户是否登陆 ====//

implementation

uses Share_Date;
{$R *.dfm}

procedure TLoginForm.FormCreate(Sender: TObject);
begin
  //---- 窗口创建时的代码 ----//
  LoginIsok := FALSE;                       //==== 初始化用户登陆标记 ====//

  Share_LogName := '';
  Share_Level := 2;
  Share_NameDesc := '';

  ED_UserName.Clear;
  ED_PassWord.Clear;

end;

procedure TLoginForm.FormActivate(Sender: TObject);
begin
  //---- 窗口获得焦点时的代码 ----//
  ED_UserName.SetFocus;
end;

procedure TLoginForm.ED_UserNameChange(Sender: TObject);
begin
  if ED_UserName.Text <> '' then IsokBut.Enabled := TRUE
  else IsokBut.Enabled := FALSE;
end;

procedure TLoginForm.ED_UserNameKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then ED_PassWord.SetFocus;
end;

procedure TLoginForm.ED_PassWordKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    if IsokBut.Enabled = TRUE then IsokButClick(IsokBut)
    else ED_UserName.SetFocus;
end;

procedure TLoginForm.IsokButClick(Sender: TObject);
var IBC_SqlStr, IBC_RootDir : String;
begin
  IBC_RootDir := ExtractFilePath(Application.ExeName);
  if IBC_RootDir[Length(IBC_RootDir)] <> '\' then IBC_RootDir := IBC_RootDir + '\';

  IBC_SqlStr := 'SELECT PassWord,UserDesc,UseLevel FROM LoginData WHERE UserName=''';
  IBC_SqlStr := IBC_SqlStr + Trim(ED_UserName.Text) + '''';
  Try
    With UADOQuery do begin
      Close;
      ConnectionString := Format(CONNSTRING, [IBC_RootDir, IBC_RootDir]);
      SQL.Clear;
      SQL.Add(IBC_SqlStr);
      PrePared;
      Open;
      if CompareStr(Trim(FieldByName('PassWord').AsString), Trim(ED_PassWord.Text))= 0 then begin
        Share_LogName := Trim(ED_UserName.Text);
        Share_NameDesc := Trim(UADOQuery.FieldByName('UserDesc').AsString);
        Share_Level := UADOQuery.FieldByName('UseLevel').AsInteger;
        LoginIsok := TRUE;
      end else begin
        LoginIsok := FALSE;
        ED_UserName.SetFocus;
      end;
      Close;
    end;
  Except
    Application.MessageBox('程式出错,请检查后再试!!', '提示', MB_OK);
    Abort();
  end;
  Close;
  ModalResult := mrOK;
end;

procedure TLoginForm.CennalButClick(Sender: TObject);
begin
  Share_LogName := '';
  Share_Level := 2;
  LoginIsok := TRUE;
end;

procedure TLoginForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if LoginIsok = FALSE then begin
    Action := caNone;
    Application.MessageBox('用户名或密码错误,请重新输入!!!', '提示', MB_OK);
  end else Action := caFree;
end;

end.

⌨️ 快捷键说明

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