【问题标题】:Ctrl+- (Ctrl+Hyphen-Minus) as ShortCut Key?Ctrl+- (Ctrl+Hyphen-Minus) 作为快捷键?
【发布时间】:2010-08-28 22:46:06
【问题描述】:

使用 Ctrl + +、Ctrl + - 和 Ctrl 似乎很自然 + 0 作为应用程序放大、缩小和恢复默认缩放(通常为 100 %)操作的快捷方式。现在,在 Delphi 中,我可以指定 Ctrl + + 和 Ctrl + 0 作为快捷方式。但是,前者要求使用键盘主要部分的加号;不能使用数字小键盘的加号。

但是,当我想将 Ctrl + - 指定为快捷方式时,问题就出现了。它根本行不通。如果我在 IDE 中分配“Ctrl+-”,则存储在ShortCut 属性中的值是16495。如果我们从中减去ssCtrl,我们会得到111。人们会认为,一种解决方法是分配ShortCut := 45 + ssCtrl,或者等价地分配ShortCut := Menus.ShortCut(45, [ssCtrl]),因为ord('-') = 45。但这不起作用。

但是,我找到了一个可行的解决方案:ShortCut := 189 + ssCtrl。我选择 189,因为这是我按下“-”键并收听 KeyDown 事件时收到的数字。

那么,为什么我对此不满意?好吧,恐怕常量 189 仅在 瑞典语键盘上有效。我已经尝试阅读此内容,并且像往常一样,the MSDN documentation 相当清楚,但是,谁知道 Delphi 是如何处理事情的。

【问题讨论】:

  • 提示:为 Ctrl+= 添加别名用于放大,否则必须在没有数字小键盘的键盘上使用 Ctrl+Shift++。
  • @Douglas:在我的键盘上,我通过按“P”和“Å”上方的 + 键(没有 shift 或 ctrl+shift)插入一个加号(是的,瑞典键盘看起来像那-99.se/attachments/powerbook-macbook-pro/…)。这也是我的问题:不同键盘上的键不一样。

标签: delphi winapi keyboard-shortcuts zooming keycode


【解决方案1】:

Windows.pas 中的关键代码 189 是 VK_OEM_MINUS,因此您的解决方案不仅适用于瑞典人。

【讨论】:

  • 非常感谢。这正是我想听到的!
【解决方案2】:

在数字键盘上正确使用菜单快捷方式是
CtrlNum + 表示 [+]
Ctrl Num - 为 [-]

Num + 和 Num - 之间有一个空格

【讨论】:

    【解决方案3】:

    我不确定为什么 Ctrl + - 会得到 16495。当我将该快捷方式添加到某个操作时,它给了我 16573,它确实在菜单上显示为 Ctrl + -,并且该快捷方式确实有效。

    但是,Menus.ShortCut(ord('-', [ssCtrl]) 不起作用是正确的。它给出的值是 16429,并在菜单上显示为 Ctrl + Ins,而 Ctrl + Ins 的作用是快捷方式。

    这可能是 Delphi 2009 及更高版本的问题,因为他们添加了 Unicode。

    【讨论】:

    • Word 类型转换等价于他已经尝试过的Ord 函数。
    • 是的,但他不想硬编码“45”。而这允许他想要的角色。我不确定他为什么说它在他的机器上不起作用。 “45”或单词('-')似乎都对我有用。
    • 哦,现在我看到了他的问题。快捷方式功能不起作用。我将不得不改变我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多