问题描述:我现在使用开发工具为:DELPHI6.0,SQL2000,做一个酒店管理系统!
现在老板要求我把权限设置为:把权限放到每个FORM,也就是,把权限设置为以下几种条件:
1:对某个窗口根本没有权限。所以就直接不能SHOW;
2,对某个窗口有查看的权限。所以窗口上的能对数据进行添加,修改,删除的按钮要不能用。
3,对某个窗口有读写权限。所以就不加限制。
请教各位的程序设置思路?

解决方案 »

  1.   

    先转几个贴:
    http://community.csdn.net/Expert/topic/3019/3019738.xml?temp=.4417536
    http://community.csdn.net/Expert/topic/2964/2964348.xml?temp=1.076907E-02
    我的观点:
    先建几张表,比如说:一张用户信息表(包含权限ID),一张权限表(就是如管理员,普通用户之类的),一张菜单表,一张权限和菜单关系表。
    权限表和菜单表有两个字段分别为(ID,Name)。
    然后在Form的菜单中每个菜单都设一个tag值,把tag值对应到表里的菜单ID上,菜单项再关联到ActionList上(或者也可以直接设置Action的Tag)。再给个示例:
    procedure TForm1.FormCreate(Sender: TObject);
    var i:integer;
    begin
      for i:=0 to ComponentCount-1 do
      begin
       if Components[i] is TMenuItem then
         if pos('-' + IntToStr(Components[i].Tag) + '-', s) > 0 then
          TMenuItem(Components[i]).Visible := True;
         end;细致的工作留给你了,自己研究一下吧!
      

  2.   

    一个FORM传送个字串!根据字串判断!用一个字符表示一种权限!
      

  3.   

    在Form的OnShow/OnCreate时间中用一个回调Function实现