关于快捷键的问题(30分)

  • 主题发起人 主题发起人 robinswp
  • 开始时间 开始时间
R

robinswp

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ToolButton+PopupMenu组成主菜单,在PopupMenu中的MenuItem中设置了ShortCut,但没有作用
请问为什么?各位有什么解决办法?
 
设置主窗体的PopupMenu属性为该PopupMenu。
 
我也这样试过,最后通过TActionList解决了!
 
to tanglu: 我有多个PopupMenu
to slicker: 请讲具体点
 
TActionList是命令组控件,PopupMenu中的命令Action要和TActionList中的动作联系起来
,并设置相同的快捷键。
 
to robinswp&kkkcheng:
TActionList是命令组控件,可以分类管理定义的TAction
PopupMenu中的MenuItem的Action属性(TButton等一些其它控件也有Action属性)
设置为定义的Action1,MenuItem的ShortCut,Caption,OnClick会自动设置为该Action
的ShortCut,Caption,OnExecute.....
Now
你只需要维护Action List
你可以让多个控件使用同一个Action;
ActionList是非可视控件,其parent只能是form

Delphi是如此处理键盘事件的:
接受键盘消息的必须是TWinControl类,(TToolButton恰好不是TWinControl的子类)

TWinControl处理如下:
if 能处理 then
处理
else
交给Parent处理;

最终会传递给Form;

Form的处理如下:
if 是MainMenu的HotKey then
处理
else
if 是PopupMenu的HotKey then
处理
else
if 定义了ActionList then
交给ActionList处理

我想,够清楚了吧!
 
把你的菜单项分别指向相应的Action就行了。
再有,就算不用TActionList,菜单的快捷键一样是可以用的。
 
????
那我这里没问题啊!
把FORM1POPUPMENU设成POPUPMENU1,TOOLBUTTON1的MENUITEM设成相应的菜单条目即可!
 
我这就是用ShortCut的但在PopupMenu中用的话,
PopupMenu没被激活可不行。用MainMenu吧!
 
接受答案了.
 
后退
顶部