判断登录用户:如何在不同窗体间传递变量?
用Delphi 7 开发的系统
想要根据登录用户的不同,设置某些功能对其是否可用,如:
系统中有一个用户管理的功能,可以查询、增加、修改、删除用户资料,
如果登录系统的是普通用户,则“用户管理”对其不可用,如果是管理员登录,则可用。
如果有许少量用户的身份是管理员,则可以直接判断登录系统的用户名,来进行上述设置。
如果将登录窗体的“用户名”传递到其他窗体以作判断,如欢迎窗体(欢迎XXX),主窗体?
[解决办法]
定义全局变量
[解决办法]
定义全局变量,在其他窗体引用定义的全局变量就可以了
[解决办法]
登陆用户及其权限放到全局变量备用。
调用功能尽量使用:TAction,在 OnUpdate 事件中判断权限。
[解决办法]
声明一个用户信息结构:
Type
TUserInfo=record
FUserName:string[12];
FUserPwd:string[12];
FUserLogonTime:Tdatetime;
FUserType:string[24];//用户权限或其他用途
end;
在主窗体中定义一个全局的用户信息变量
var
UserInfo:TUserInfo;
[解决办法]
续楼上,
定义全局变量
var
UserInfo:TUserInfo;
在要使用的窗体中调用mainform.UserInfo.FUserName就可以使用用户的姓名了
[解决办法]
续楼上,对全局反感的话用属性
type
myWindow=TFrom
...
private
FUserInfo: TUserInfo;
...
public
property UserInfo: TUserInfo read FUserInfo write SetUserInfo;
在调用窗口Show之前 UserInfo := CurrentInfo; 就可啦
如果你的工程中所有窗口来自继承的话,这些代码不用每个都加