loginunit.pas

来自「很好地delphi书籍源码」· PAS 代码 · 共 107 行

PAS
107
字号
unit LoginUnit;

interface

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

type
  TFrmLogin = class(TForm)
    Panel1: TPanel;
    UserCB: TComboBox;
    PasswordEdit: TEdit;
    SpeedButton2: TSpeedButton;
    SpeedButton1: TSpeedButton;
    Label2: TLabel;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure StopAltF4(var message:TWMCLOSE);message WM_CLOSE;
  end;

var
  FrmLogin: TFrmLogin;
  Waiter,GuestKind:string;
implementation

uses DataModuleUnit;

var
  TryCount:word;
{$R *.dfm}

{ TForm1 }

procedure TFrmLogin.StopAltF4(var message: TWMCLOSE);
begin
  exit;
end;

procedure TFrmLogin.FormCreate(Sender: TObject);
begin
  TryCount:=0 ;
  with DataModule1.tUser do
  begin
    Open;
    if RecordCount=0 then
      AppendRecord(['sa','123','管理员'])
    else
    begin
      First;
      while not Eof do
      begin
        UserCB.Items.Add(Fields[0].AsString);
        Next;
      end;
    end;
  end;
end;

procedure TFrmLogin.SpeedButton1Click(Sender: TObject);
var
  Count:word;
begin
  Count:=0;
  Waiter:=UserCB.Text;
  if Waiter='' then Showmessage('请确定用户名!'); 
  with DataModule1.tUser do
  begin
    if Locate('UserName',UserCB.Text,[loCaseInsensitive]) then
    begin
      Inc(Count); //用户存在Count 加1
      if Fields[1].AsString=PasswordEdit.Text then
        Inc(Count) //密码又正确 Count 再加1
      else
        ShowMessage('密码不对!');
    end else
      ShowMessage('用户不存在!');
   if Count=2 then    //Count=2 说明是合法用户,取出其类别
      GuestKind:=Fields[2].AsString
    else
    begin
      if TryCount<3 then
      begin
        Inc(TryCount);
        exit;
      end else
        Application.Terminate;
    end;
  end;
  Close;

end;

procedure TFrmLogin.SpeedButton2Click(Sender: TObject);
begin
  Application.Terminate;
end;

end.

⌨️ 快捷键说明

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