(急急急急急急急急急!!!:) 各位仁兄,求求你们了,我真的是无能为力:)默认的HotKey无法去掉 (100分)

  • 主题发起人 主题发起人 faguobali
  • 开始时间 开始时间
F

faguobali

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]大侠不要急,先把我的问题看完吧!
具体情况是这样的:我原本想建立一工具条,可以拖动、改变形状,
而且工具条里面不是BUTTON,而是可以弹出类似MAINMENU的多级菜单,
通过以下方法解决了这一问题,

1.放一个controlbar
2.放一个toolbar到controlbar上
3.放一个ImageList,添加图标
4.放一个popupmenu,添加若干菜单项
5.在toolbar上点右键
6.然后new toolbutton多个
7.全选toolbutton1,toolbutton2,toolbutton3...,另Grouped:=true
8.设置toolbutton1.style=tbsButton,
toolbutton2.style=tbsButton,
toolbutton3.style=tbsButton...
9.设置toolbutton1.menuitem,toolbutton2.menuitem,toolbutton3.menuitem...
10.toolbar.flat:=true;
11.controlbar.docksite:=true;
12.toolbar.dragkind:=dkdock;
然后运行,此时工具条,可以拖动、改变形状了,但新的问题又出现了,
各项菜单默认的HotKey用如下方法无法去掉,
大侠不要急,先把我的问题详细的看完吧!你先照我发上去的做一遍就知道了:
如果菜单标题是英文还好些,仅在首字母下加条线;要是中文标题,统统在后面
加上“(X)”字样,难看得很!我早已试过了如下方法:
1.菜单的属性如下设置
Menu.AutoHotkeys := maManual;
Menu.AutoLineReduction := maManual;此方法失效!!!
2.于是又尝试TMenuItem的AutoHotkey属性调节,也无效!!!
另外我指的HotKeys是热键,不是指ShortCut快捷键;
还有我未用PopMenu,只用了MainMenu,按理说与PopMenu的HotKeys属性是无关的。
望各路高手在百忙之中抽出时间来赐教,小弟在此多表谢意了。:))

[:)]
[red][/red]
 
shotcut属性设为none
 
应该设置一下PopupMenu的AutoHotkeys属性
 
大侠不要急,先把我的问题详细的看完吧!你先照我发上去的做一遍就知道了:如果菜单标题是英文还好些,仅在首字母下加条线;要是中文标题,统统在后面加上“(X)”字样,实在难看!我早已试过了如下方法:
1.菜单的属性如下设置
Menu.AutoHotkeys := maManual;
Menu.AutoLineReduction := maManual;此方法失效!!!
2.于是又尝试
TMenuItem的AutoHotkey属性调节,
也无效!!!
另外我指的HotKeys是热键,不是指ShortCut快捷键;
还有我未用PopMenu,只用了MainMenu,按理说与PopMenu的HotKeys属性是无关的。
望各路高手在百忙之中抽出时间来赐教,小弟在此多表谢意了。:))
 
把你的DFM文件贴上来看看
 
你自己指派快捷键就可以了
还有一种方法:Delphi5为例,保存ComCtrls.pas到你的工程目录下。
在17108行(function TToolBar.CheckMenuDropdown(Button: TToolButton): Boolean;
)添加:
FTempMenu.AutoHotkeys := Button.MenuItem.AutoHotkeys;
重新编译程序,就可以了
 
这是Delphi的VCL的疏漏,他设定的都不错。
最好要设定你的指定为TToolButton的MenuItem的AutoHotKeys为maManual;
 
[:)]shenloqi:你好。
指定为TToolButton的MenuItem的AutoHotKeys为maManual;此方法用后,HotKey依然如故。
你说的在Delphi5,保存ComCtrls.pas到工程目录下。
(function TToolBar.CheckMenuDropdown(Button: TToolButton): Boolean;)
添加:
FTempMenu.AutoHotkeys := Button.MenuItem.AutoHotkeys;
重新编译程序,就可以了。但愚弟使的D6中,此法却没有通过。
不知此法在D6中是否能够行得通,具体怎样操作(可能我操作有误)。
请您赐教(把操作中易犯的错误告愚弟一声)。
多谢了。多谢各位师兄的指导了!:))
 
各位仁兄,帮小弟一把吧!:)
 
only set:

Menu.AutoHotkeys := maManual;

test pass
 
dragonlee007:你好:
你亲自试一下吧,
Menu.AutoHotkeys := maManual;
在将MainMenu加到ToolBar后,HotKey依然如故,
实在没有办法的了:)
多谢了。
 
各位快来看看,这问题我也遇到了,一直没有解决,哪位有好方法,我愿倾其所有。
奉献我的全部得分。各位大侠,不要嫌分少哦?:)
 
shenloqi的方法可以,我试过了,我也是遇到与你一样的问题,不过你要记行将原来
的 comctrls.dcu 删除,以免linker 使用原来DCU 链接成EXE文件
17108 行
改动前:
if Menu <> nil then
FTempMenu.Images := Menu.Images;
改动后的代码如下:
if Menu <> nil then
begin
FTempMenu.AutoHotkeys :=Menu.AutoHotkeys;
FTempMenu.AutoLineReduction :=Menu.AutoLineReduction;
FTempMenu.Images := Menu.Images;
end;

 
后退
顶部