如何将 TAction 的快捷方式设置为 Ctrl + Numpad 0?

Rae*_*elB 2 delphi keyboard-shortcuts

我试过这个:

actZoomReset.ShortCut := TextToShortCut('Ctrl+Num 0');
Run Code Online (Sandbox Code Playgroud)

但这没有任何作用(ShortCut = 0)。

编辑:

如果我尝试在 IDE (Ctrl+Num 0) 中直接在 ShortCut 属性中设置值,则会收到错误消息:“无效的属性值”。如果我双击 Shortcut 属性,然后按“Ctrl”和“Numkey 0”,它会在热键编辑中显示“Ctrl+Num 0”,当我按 Enter 时,它会在 ShortCut 中显示“Ctrl+Ins”场地。

实际上

actZoomReset.ShortCut := TextToShortCut('Ctrl+Ins');
Run Code Online (Sandbox Code Playgroud)

将工作。然后我的问题就变成了,这是否适用于其他键盘,还是我自己的键盘的一个怪癖?我正在使用罗技 G213。小键盘 0 下面有“Ins”。

我在 Windows 10 上使用 Delphi 10.2

And*_*and 5

最简单的方法是在设计时使用Object Inspector设置操作的快捷方式:

对象检查器的屏幕截图,显示了设置为 Ctrl+Num 0 的 ShortCut 属性。

但是如果你需要以编程方式设置这个属性,你可以这样做

actZoomReset.ShortCut := ShortCut(VK_NUMPAD0, [ssCtrl])
Run Code Online (Sandbox Code Playgroud)

(通常情况下,没有必要在运行时调整的动作的非国家性质。该状态特性VisibleEnabledChecked)。

关于您的编辑:

听起来您不小心关闭了 NUM LOCK。当 NUM LOCK 为 ON(默认)时,0/INS 键表示 0。当 NU​​M LOCK 关闭时,表示 INS。

要打开 NUM LOCK,请按红色圆圈中的键。当 NUM LOCK 打开时,绿色圆圈中的 LED 将亮起。

带有 NUM LOCK 键及其相关 LED 突出显示的 OP 键盘图像。