代码之家  ›  专栏  ›  技术社区  ›  Andreas Rejbrand

ctrl+-(ctrl+hyphen-minus)作为快捷键?

  •  5
  • Andreas Rejbrand  · 技术社区  · 14 年前

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

    然而,当我想分配 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 很清楚,但是谁知道德尔福是如何处理事情的。

    3 回复  |  直到 10 年前
        1
  •  6
  •   Rob Kennedy    14 年前

    密码189是 VK_OEM_MINUS 在里面 视窗 所以你的解决方案不仅仅是针对瑞典人。

        2
  •  1
  •   udondan    10 年前

    正确使用数字键盘上的菜单快捷方式是
    Ctrl键 Num + 对于[+]
    Ctrl键 努姆- [-]

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

        3
  •  0
  •   Jasper wontondon    13 年前

    我不知道你为什么要得到16495 Ctrl键 + - . 当我把这个快捷方式添加到一个动作中时,它给了我16573,并且它在菜单上显示为 Ctrl键 + - ,这个快捷方式确实有效。

    但是,你是对的 Menus.ShortCut(ord('-', [ssCtrl]) 不起作用。它给出值16429,并在菜单上显示为 Ctrl键 + 惯导系统 Ctrl键 + 惯导系统 作为快捷方式工作。

    也许这是Delphi2009的一个问题,因为他们添加了Unicode。

    推荐文章