用Delphi 7 开发的系统想要根据登录用户的不同,设置某些功能对其是否可用,如:系统中有一个用户管理的功能,可以查询、增加、修改、删除用户资料,如果登录系统的是普通用户,则“用户管理”对其不可用,如果是管理员登录,则可用。
如果有许少量用户的身份是管理员,则可以直接判断登录系统的用户名,来进行上述设置。
如果将登录窗体的“用户名”传递到其他窗体以作判断,如欢迎窗体(欢迎XXX),主窗体?
如果有许少量用户的身份是管理员,则可以直接判断登录系统的用户名,来进行上述设置。
如果将登录窗体的“用户名”传递到其他窗体以作判断,如欢迎窗体(欢迎XXX),主窗体?
Type
TUserInfo=record
FUserName:string[12];
FUserPwd:string[12];
FUserLogonTime:Tdatetime;
FUserType:string[24];//用户权限或其他用途end;在主窗体中定义一个全局的用户信息变量
var
UserInfo:TUserInfo;
定义全局变量
var
UserInfo:TUserInfo;
在要使用的窗体中调用mainform.UserInfo.FUserName就可以使用用户的姓名了
myWindow=TFrom
...
private
FUserInfo: TUserInfo;
...
public
property UserInfo: TUserInfo read FUserInfo write SetUserInfo;在调用窗口Show之前 UserInfo := CurrentInfo; 就可啦如果你的工程中所有窗口来自继承的话,这些代码不用每个都加
if(XX='1') then
XXX.visible:=true; //其中该菜单项的visible属性默认为false 而由于登录成功后要打开主界面窗体,已经在登录窗体的uses列表中引用了主界面窗体的。现在再由主窗体引用一个已经引用了它的窗体,引用上级窗体中的变量值。 为了不引起循环引用,后者引用前者是在 implementation 下面添加 uses unitX ,而前者引用后者就直接在interface 下面的uses 里添加引用。
private
{ Private declarations }
public
{ Public declarations }
end;var
usname:string;implementation//过程、函数等的具体定义和实现end.