【求助】一个关于delphi中权限设置的问题,各位达人进来看看~

本人最近做了一个简单的学生信息系统,现在遇到两个小问题,1、我想在登录的时候,增加一个权限的功能,比如,如果是操作员,则主界面几个菜单不可见,如果是管理员,则全可见;看了... 本人最近做了一个简单的学生信息系统,现在遇到两个小问题,

1、我想在登录的时候,增加一个权限的功能,比如,如果是操作员,则主界面几个菜单不可见,如果是管理员,则全可见;看了很多文章,都不行,这种功能,请问一般都是怎么实现的?

2、我在主界面的下面加了一个状态栏,成功登录了,就在下面显示,“ 当前用户:”
这个请问要怎么赋值的?

本人比较菜,所以麻烦说的详细一点,本来想自己下个现成的系统,再研究,不过发现,都没注释,哎;

满意了加分,谢谢!
展开
 我来答
thomasdai
2011-05-06 · TA获得超过189个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:220万
展开全部
第一步,你需要有一个数据库,其中有一张表,保存了至少用户名、密码和权限三个信息。
最简单的权限可以用一个整数表示,就是分组,数字越大权限越多。
高级一点的权限对应另外一张表:权限表,权限表详细记录每一个功能允许还是不允许。

第二步,在你的程序中加入一个登录界面,登录时从用户表检索用户名和密码与输入的用户名密码匹配的记录,检索到则认为登录成功,否则提示失败。在程序中用全局变量记录登录用户的信息,UserName,UserRights。未登录成功时UserName为空,UserRights=0

第三步,如果登录成功了,关闭登录界面,显示主窗口。在主窗口中增加一个函数InitMenuByUserRights。在FormCreate或者FormShow中调用该函数。

第四步,实现InitMenuByUserRights函数,大致类似下面的语句:
菜单项1.Visible := UserRights > 3;

第五步,在状态栏上显示当前用户:
StatusBar.Panels[0].Text := '当前用户:' + UserName;

有问题欢迎继续提问。
qiao_liu
2011-05-06 · TA获得超过422个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:244万
展开全部
针对第一个小问题:
(1)数据库里除了一个用户信息表A(用户ID,用户名,用户密码,...)外,还需加一个用户权限管理表B(用户ID,权限ID,...)和一个权限管理表C(权限ID,功能ID,功能名称,...),其中功能名称就相当於你界面上的菜单;
(2)登录OK後,根据UserID到数据库里查询出当前用户的权限(select C.功能名称 FROM A,B,C WHERE A.用户ID=B.用户ID AND B.权限ID=C.权限ID),根据功能名称决定是否显示相关菜单。不显示菜单,只需菜单名.Visible:=false;

针对第二个小问题:
(1)主界面和登录界面里需要各定义一个UserID:String;
(2)登录成功後,关闭登录界面,Create一个主界面mainForm,然後将登录界面的UserID赋给主办面的UserID(在登陆按钮消息处理函数结束前:mainForm.UserID:=this.UserID,this表示当前对象即登陆界面),然後给主界面状态栏赋值:StatusBar.Panels[0].Text := '当前用户:' + UserID;

需要继续提问请Hi我~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邦浅魔千
2011-05-06 · TA获得超过220个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:354万
展开全部
1、权限问题,可以使用actionlist控件,在actionlist里来定义action功能,然后将菜单和快件按钮的action对应到actionlist的相应action里,然后你可以在数据库加入用户表和权限表,一种是直接将你的action名称写入到权限表里与用户表对应,然后在用户登录时取出并对应判断。另一种就是采用数字权限,比如0为普通用户,99为管理员权限,然后在程序里判断,如果是管理员则显示那几个菜单,那几个菜单默认不显示
2、定义一个全局变量,保存username,然后在登录成功后对其进行赋值,
StatusBar.Panels[0].Text := '当前用户:' +username;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
forestry98
2011-05-06 · TA获得超过2442个赞
知道小有建树答主
回答量:1351
采纳率:33%
帮助的人:556万
展开全部
在数据库里面每个可以登陆的帐号都增加一些【操作权限】的字段。
登陆时先检查这些权限,再根据这些权限数据再去确定那个菜单或者功能是否显示出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式