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

📄 unit1.pas

📁 本光盘是《Delphi 7应用教程》一书的配套光盘
💻 PAS
字号:
unit Unit1;

interface

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

type
  TYHDL = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Table1: TTable;
    DataSource1: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  YHDL: TYHDL;
  YHM:String; //全局变量YHM用来存放用户输入的用户名信息
  GLY:Boolean; //全局变量GLY用来存放当前登录的用户是否为管理员信息,值为True表示为管理员
  KL:String;  //全局变量KL用来存放用户输入的口令信息

implementation

var
  time:integer; //用来存放用户尝试的次数

{$R *.dfm}

procedure TYHDL.FormCreate(Sender: TObject);
  var
    curdir:string; //curdir存放应用程序所在目录
begin
   getdir(0,Curdir); //获取当前目录
   table1.DatabaseName :=Curdir;//设置数据库名
   Table1.TableName:='User.db'; //设置表名为用户表
   Table1.Open ; //打开表
   time:=0;  //尝试次数为0
end;

procedure TYHDL.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if ord(key)=13 then  //如果按了回车键
    begin
       Table1.IndexFieldNames :='UserName';  //设置索引字段名为'UserName'
       Table1.SetKey ;   //把用户表设置为查询状态
       Table1.FieldByName('UserName').AsString :=Edit1.Text ;//根据用户输入的用户名进行查找
       If Table1.GotoKey  then//如果找到
          begin
             Edit2.SetFocus ; //焦点设置在Edit2,以便输入口令
             Time:=0;  //重新设置Time值为0,允许输入口令时也尝试三次
          end
          else    //用户名输入错误
             begin
               time:=time+1;  //尝试次数加1
               if time<=2 then  //如果尝试次数小于3
                  ShowMessage('用户名非法,请重输!')//弹出提示
               else
                 begin
                    ShowMessage('你是非法用户,不能进入系统!');//尝试次数超过3次
                    Table1.Close; //关闭表
                    Application.Terminate ;//终止应用程序的执行
                 end;

             end;
    end;
end;

procedure TYHDL.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
 If Ord(Key) = 13 Then
      If Table1.FieldByName('PASSWORD').AsString   <> Edit2.Text Then
         begin
            time := time + 1;
            If time < 3 Then
                begin
                    ShowMessage ('口令错误,请重新输入!');
                    Edit2.Text := '';
                    Edit2.SetFocus;
                end
            Else
              Begin
                 ShowMessage ('对不起,你无法进入系统!');
                 Close;
              end   
         end
         Else
           begin
              ShowMessage('欢迎你进入系统');
              YHM:=Table1.FieldByName('Username').AsString ; //保存用户名到变量YHM中
              GLY:=Table1.FieldByName('Admin').AsBoolean ; //保存是否为管理员信息到GLY变量中
              KL:=Table1.FieldByName('PassWord').Asstring ; //保存口令信息到变量KL中
              Table1.Close;   //关闭用户表
              YHDL.Hide ;    //隐藏登录界面
             // ……此处显示应用程序的主界面
           end;
 end;

end.

⌨️ 快捷键说明

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