【发布时间】: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