没有看错吧,你定义这么多字段做什么?其实只有一个字段就可以了,不同的组合可以有不同的权限;
这样吧:
你只用一个这段:
先定义一个集合,然后取出权限字段值;
Case FieldByName('xxx').AsString ...
..:...
..:...
..:..
end;
这样吧:
你只用一个这段:
先定义一个集合,然后取出权限字段值;
Case FieldByName('xxx').AsString ...
..:...
..:...
..:..
end;
解决方案 »
- 使用BlockRead连续读取文件块,如何实现续读?
- 主记录和不确定数量的子数据的输入界面怎么处理?
- 请问:能否在delphi 中使用水晶报表,如何使用?
- delphi如何调用word,并打印
- Unsafe type 'PChar' ???
- 如果DELPHI消失了!
- Deplhi 报表控件---SReport3强大易用稳定与最终用户交互良好(新)
- 有关于ExpressBars的简单问题(在线等候)
- 后端为access,现将vfp中数据通过编程导入access,并通过dbgrid控件体现,但发现对于字段为数字型,字段类型不论双精度还是单精度,对于vfp为数值型,如0.25在dbgrid中都体现为0.250000056.请问如何解决.
- 请问如何动态修改网关(不需重新启动,立即生效!)
- delphi的IndyUDPClient控件怎么指定本地的端口。
- 三层结构中服务端dll文件中为何增加多个datasetprovider出错?
A=1;B=2;C=4;D=8;E=16($10);F=32($20);G=64($30);
然后按照相应权限设置各个菜单项的Tag值为相应权限掩码的和,如菜单1的权限为A,C,E,则其Tag值为:21;
在登录后,根据登录用户权限设置变量Limit的值为此用户的权限掩码和;如:此用户的权限为A,C,则Limit=5;
执行如下代码
for i := 0 to MainMenu1.Items.Count - 1 do
MainMenu1.Items.Items[i].Visible := Boolean(MainMenu1.Items.Items[i].tag and Limit);
设定主菜单的各子菜单的tag属性,如菜单一 的tag = 1+4+16=21 ....
代码很简单:
for i:=0 to mainmenu.items.count-1 do
mainmenu.items[i].visible:=(mainmenu.items[i].tag and flag)=0;
怎么和 MSHawk(憨憨)老兄重了
怎么和 MSHawk(憨憨)老兄重了
很多了(排列组合我忘记了),应该不少,你的意思是这样的吗?还是我没理解你的说法?请再次指教!谢!
begin
Menu.Items[i].Visible:=Fields[i].AsBoolean;
end;
当然,你要先判断MenuItems[i].Hint的有效性。