扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
表1表Users.DB的结构
域名 类型 大小 关键字 说明
Name A 16 * 用户名
Password A 16 * 注册口令
Fullname A 32 用户全名
Group I 用户组号
Enabled L 注册允许
表2表Users.DB的样本用户
Name Password Fullname Group Enabled
Supervisor AAAAAA SuperUser 0 True
ector BBBBBB DirectorUser 1 True
Guest 3 True
User1 CCCCCC GeneralUser1 1 False
User1 DDDDDD GeneralUser1 2 True
User2 EEEEEE GeneralUser2 3 True
procedureTMainForm.FormActivate(Sender:TObject);
begin
ifTime<=StrToTime(12:00:00)then
Caption:=上午好,您已成功登录!
else
Caption:=下午好,您已成功登录!;
//显示登录用户信息、登录日期和时间
NameEdit.Text:=LoginUser.UserName;
FullNameEdit.Text:=LoginUser.UserFullName;
GroupEdit.Text:=IntToStr(LoginUser.UserGroup);
DisplayDateEdit.Text:=DateToStr(Date);
DisplayTimeEdit.Text:=TimeToStr(Time);
end;
表3主窗体中组件属性设置
组件 属性 设置
Form1 Caption
Name MainForm
Position poScreenCenter
GroupBox1 Caption 用户信息
Label1 Caption 用户名称:
Label2 Caption 用户全名:
Label3 Caption 用户组号:
Label4 Caption 登录日期:
Label5 Caption 登录时间:
Edit1 Name NameEdit
Edit2 Name FullnameEdit
Edit3 Name GroupEdit
Edit4 Name DisplayDateEdit
Edit5 Name DisplayTimeEdit
表4数据模板中组件属性设置
组件 属性 设置
Table1 DatabaseName UserInfo
Name UsersTable
TableName Users.DB
表5注册窗体中组件属性设置
组件 属性 设置
Form2 ActiveControl UserNameEdit
Caption 请注册
Name LoginDialogForm
Position poScreenCenter
Label1 Caption 用户:
Label2 Caption 密码:
Edit1 Name LoginNameEdit
Text
Edit2 Name PasswordEdit
PasswordChar *
Text
BitBtn1 Caption 注册(&L)
Enabled False
Kind bkOK
Name LoginBitBtn
BitBtn2 Caption 取消(&C)
Enabled True
Kind bkCancel
Name CancelBitBtn
usesClasses,Forms,Sysutils;
type
TApplicationUser=class(TComponent)
private
FUserName:string;
FFullName:string;
FUserGroup:Integer;
public
propertyUserName:stringread
FUserNamewriteFUserName;
propertyUserFullName:stringread
FFullNamewriteFFullName;
propertyUserGroup:Integerread
FUserGroupwriteFUserGroup;
end;
var
LoginUser:TApplicationUser;
initialization
LoginUser:=TapplicationUser.Create(Application);
CountDown:=3;//允许尝试注册3次
ModalResult:=mrNone;
try
Session.AddPassword(UserPassword);
LogDataModule.UsersTable.Open;
//注册信息处理
ifnotLogDataModule.UsersTable.FindKey
([LoginNameEdit.Text,PasswordEdit.Text])then
begin
//处理注册次数
dec(CountDown);
ifCountDown<=0thenModalResult:=mrCancelelse
begin
MessageBeep($FFFF);
Application.MessageBox(请您重试一次!,
无效注册信息,mb_iconstop+mb_OK);
//重设输入焦点
LoginNameEdit.SetFocus;
end;
exit;
end;
//检查注册允许值
ifnotLogDataModule.UsersTable.FieldByName
(Enabled).AsBooleanthen
begin
MessageBeep($FFFF);
Application.MessageBox(抱歉,您不能进入系统!,
使用权限终止,mb_iconexclamation+mb_OK);
ModalResult:=mrCancel;
exit;
end;
//获取注册用户信息
withLogDataModuledo
begin
LoginUser.UserName:=UsersTable.
FieldByName(Name).AsString;
LoginUser.UserFullName:=UsersTable.
FieldByName(Fullname).AsString;
LoginUser.UserGroup:=UsersTable.
FieldByName(Group).AsInteger;
End;
ModalResult:=mrOK;
//关闭表,清除密码
finally
LogDataModule.UsersTable.Close;
Session.RemovePassword(UserPassword);
end;
uses
MD,Addition;
ifLoginDialogForm.ShowModal=mrOKthen
begin
LoginDialogForm.Free;
Application.Run;
end;
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者