+ -
当前位置:首页 → 问答吧 → 权限控制中遇到的问题

权限控制中遇到的问题

时间:2011-10-10

来源:互联网

数据库中储存有对应菜单按钮的NAME
right_object_name字段是对应MENUITEM的name
在主窗体的CREATE过程中有如下段

qry_user_right.Close;
qry_user_right.Parameters.ParamByName('user_guid').Value:=user_guid;
qry_user_right.Open;
qry_user_right.First;


while not qry_user_right.Eof do begin
  try
  begin
  //这句我用来测试是否能找到对应NAME的menuitem,测试是可以找到的,但是在下一句却无法执行!
  ShowMessage(TMenuItem(FindComponent(qry_user_right.fieldbyname('right_object_name').AsString)).Caption);
  TMenuItem(FindComponent(qry_user_right.fieldbyname('right_object_name').AsString)).Visible:=True;
   
  end;
  except
  end;
  qry_user_right.Next;
end;



运行中每个对应NAME的CAPTION都能被SHOWMESSAGE,但是下面的VISIBLE属性设置为TRUE却无法运行(在设计期已把所有的MENUITEM设置为FALSE),

是什么原因??

作者: sunway0112   发布时间: 2011-10-10

单纯靠显示与否控制,很不保险
有工具可以修改别的程序的控件的属性的。。。。。。。

应该在控件的每个事件的入口加判断

作者: sz_haitao   发布时间: 2011-10-10

先在主菜单中的显示与否进行控制,在运行时会再判断的,关键是现在TRUE不起作用

作者: sunway0112   发布时间: 2011-10-10

有没有使用actionlist?

作者: sz_haitao   发布时间: 2011-10-10