W
wadelphi
Unregistered / Unconfirmed
GUEST, unregistred user!
有一段源程序、用户登录后在数据表中获取一个qx的值,下面这段程序通过对qx值的运算,得出用户可以打开的菜单项;所有菜单项共分七类、设置qx的值可打开七类菜单项的部分或全部;请问大侠qx的值是怎么设置的?程序中的逻辑及移位运算的含义是什么呀??
附源程序:
for i := 0 to MainForm.MainMenu1.items.Count - 1 do
for j := 0 to MainForm.MainMenu1.Items.Count - 1 do
MainForm.MainMenu1.items.Items[j].Enabled := false;
//使所有的菜单为不可用
qx := qx xor 1234567890;//qx共十位、前四位都是123、通过后七位控制权限;
qx := qx shr 10;
for i := 0 to 6 do //共有7 种权限
if ((1 shl i) and qx) <> 0 then
begin
case i of
0://打开对应菜单项、内容略,下同 ;
1:
2:
3:
4:
5:
6:
end;
end;
附源程序:
for i := 0 to MainForm.MainMenu1.items.Count - 1 do
for j := 0 to MainForm.MainMenu1.Items.Count - 1 do
MainForm.MainMenu1.items.Items[j].Enabled := false;
//使所有的菜单为不可用
qx := qx xor 1234567890;//qx共十位、前四位都是123、通过后七位控制权限;
qx := qx shr 10;
for i := 0 to 6 do //共有7 种权限
if ((1 shl i) and qx) <> 0 then
begin
case i of
0://打开对应菜单项、内容略,下同 ;
1:
2:
3:
4:
5:
6:
end;
end;