📄 unit1.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 + -