如何将TAction的快捷方式设置为Ctrl+Numpad0?
我试过这个:
actZoomReset.ShortCut := TextToShortCut('Ctrl+Num 0');
但这没有任何作用(ShortCut = 0)。
编辑:
如果我尝试在 IDE (Ctrl+Num 0) 中直接在 ShortCut 属性中设置值,则会收到错误消息:“无效的属性值”。如果我双击 Shortcut 属性,然后按“Ctrl”和“Numkey 0”,它会在热键编辑中显示“Ctrl+Num 0”,当我按 Enter 时,它会在 ShortCut 中显示“Ctrl+Ins”场地。
实际上
actZoomReset.ShortCut := TextToShortCut('Ctrl+Ins');
将工作。然后我的问题就变成了,这是否适用于其他键盘,还是我自己的键盘的一个怪癖?我正在使用罗技 G213。小键盘 0 下面有“Ins”。
我在 Windows 10 上使用 Delphi 10.2
回答
最简单的方法是在设计时使用Object Inspector设置操作的快捷方式:
但是如果你需要以编程方式设置这个属性,你可以这样做
actZoomReset.ShortCut := ShortCut(VK_NUMPAD0, [ssCtrl])
(通常情况下,没有必要在运行时调整的动作的非国家性质。该状态特性Visible,Enabled和Checked)。
关于您的编辑:
听起来您不小心关闭了 NUM LOCK。当 NUM LOCK 为 ON(默认)时,0/INS 键表示 0。当 NUM LOCK 关闭时,表示 INS。
要打开 NUM LOCK,请按红色圆圈中的键。当 NUM LOCK 打开时,绿色圆圈中的 LED 将亮起。