• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi利用TActionList实现权限控制

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
前段时间开始学习Delphi数据库编程,在程序设计中需要加入【权限控制】的功能,上网找了一些资料,大家实现这个功能的方法有很多,不过网上提供的资料基本上都很混乱,估计是一次又一次的转载的时候丢失了很多信息。
    我们只需利用Delphi提供的TActionList控件就可以很容易的实现权限控制功能。通过TActionList,应用程序可以统一管理其 TAction,这里的Action,可以理解为应用程序的功能。在应用的设计期间,可以通过TActionList编辑器将功能(Action)加入 TActionList,将Action加入TActionList后,就可能通过Object Inspector设置Action的属性或为其建立事件句柄。当要限定某一功能时,可能利用TAction的Enabled,将其设为False,此功 能对于用户将被屏蔽掉,如果要此功能对用户不可见,则可以设定Visible为False。
    具体实现办法:

第一步:建立用户信息表,储存用户信息。

用户信息表User的结构如下:

 

字段名称 字段类型 说明
UsrID string  用户的ID,为表的关键字
UsrName string  用户名称(姓名)
UsrPwd string 用户密码
UsrRight string 用户权限(也可以设置成Interger)

第二步:在程序主界面单元里面定义全局变量OperatorName、OperatorRight和全局过程ChkRight,在登录单元内获取权限字符串后赋值给OpertorRight。

frmLogin单元:

OperatorRight := ADOQuery1.FieldByName('UsrRight').AsString;

frmMain单元:

var
  frmMain: TfrmMain;
  OperatorName, OperatorRight: string;          //用户名、权限
  procedure ChkRight(strRight: string);         //权限检查
implementation

uses uLogin;

{$R *.dfm}

//==============================================================================
// 检查用户权限
//==============================================================================


procedure ChkRight(strRight: string);
var
  i, num: Integer;
  blRight: Boolean;
begin
  with frmMain do
  begin
    // string[i]没有 0 ,所以循环从 1 开始
    for i := 1 to Length(strRight) do
    begin
      //设置Actions是否显示,以此来控制用户权限
      blRight := strRight[i] = '1';
      TAction(actlstMain.Actions[i-1]).Visible := blRight;
    end;
  end;
end;

procedure TfrmMain.FormActivate(Sender: TObject);
begin
  ChkRight(OperatorRight);                       //检查用户权限
end;

 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap