易截截图软件、单文件、免安装、纯绿色、仅160KB

权限管理Delphi二维数组方案

权限管理Delphi实现算法
在运用DELPHI编制一些应用系统时,有很多时候都需要给不同的用户赋予不同的权限,
而不同的系统又有不同的权限分配方式,
如果在程序中去为每一位用户分配权限的话,不仅使得程序的编制十分麻烦,而且也不利于管理!
笔者近日想得一自认为比较好的方法,愿与大家共享,并望各位多指教!
在很多的系统中,权限通常是被分成几级的。
每一级的用户所能实现的操作是不同的,而实现这一功能的方法一般都是让不同权限的用户见到不同的菜单。
简单的说就是对不具有某一权限的用户这一菜单就是不可见的!
为了实现这一控制,程序员们往往得花费很多的时间去做这一模块,浪费了很多宝贵的时间!
想法是:如果设一个二维数组,第一维代表第一级菜单,第二维代表子菜单,
每一个数组元素只存储0或1这两个数,某一权限的用户对应着一个二维数组,而这个数组又代表了相应的菜单。
给某一级别的用户分配权限后,他便拥有了一个相应的数组。
登录时,从数组中取出各个元素的值,如果为1则相应的菜单出现,为0则不出现菜单。
用这种方式不但可以分级,还能实现在不同的用户间实现权限细分,只要你修改相应的数值为0或1即可!
上面是一个简单例子的运行结果。
下面是部分源程序(这仅是一个解释性的例子程序),为了简便,程序中只有一个窗体和一个主菜单。
在创建窗体时初始化数组M,显示时读出数组值并通过设置菜单的Enabled属性或者Visible属性的True或False来控制显示!!
var
   Form1: TForm1;
   m:array[0..1,0..4] of integer;//定义存储的数组
   i,j:integer;//定义循环的变量
implementation
{$R *.dfm}
//权限数组直接设置或者从数据库表中加载
procedure TForm1.FormCreate(Sender: TObject);
begin
    k:=0;
    for i:=Low(m) to High(m) do
       for j:=Low(m[i]) to High(m[i])
 do
          if (j mod 2)=0 then
  m[i][j]:=1
          else
  m[i][j]:=0;
end;
//读出数组控制菜单的显示
procedure TForm1.FormShow(Sender: TObject);
begin
    for i:=Low(m) to High(m) do
       for j:=Low(m[i])


相关文档:

如何让Delphi调用外部程序并等待其运行信息(如结束)

函数一:
view plaincopy to clipboardprint?
uses 
    Windows,  
    SysUtils,  
    Classes,  
    ShellAPI;  
function RunAndWait(FileName: string; Visibility: Integer): THandle;&nbs ......

1、Delphi正则表达式学习

Delphi正则表达式学习,参考CSDN万一老师的BLOG、CSDN、网络资料以及带源码的TPerlRegEx,在此注明,以后不再说明,在些感谢Google老师和百度老师
安装:
 下载地址:http://download.csdn.net/source/1668436
1、安装.dpk文件,在Libary中添加TPerlRegEx单元存放路径
2、运行程序前复制pcrelib.dll到C:\WINDOWS下 ......

unicode与GB2312转换等Delphi函数


{ 函数 : RESULTSTRING = HexToBin(HEXSTRING)
{ 目的 : 把十六进制字符串转换为二进制字符串
{
{===============================================================}
{ 函数 : RESULTINTEGER = HexCharToInt(HEXCHAR)
{ 目的 : 转换一个十六进制字符为整数
{==================================================== ......

Delphi显示和隐藏窗体

一个很简单的问题,但我凭我学习C++/VC一年多,接触Delphi的时间也不短了,但仍然写不出来。
本来以为,不就是将Form1.Show和Form1.Hide么,但却就是达到不到自己想要的结果
这个问题倒不用作深入研究了,到是让我发现,Delphi也不是信手摘来,什么都是那么容易的,以为自己有点儿VC的底子,就小看了Delphi。
最近一段时 ......

一个delphi程序员的开发习惯

                                                   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号