我们正在使用Delphi 7企业版,应用程序基于Windows XP构建,在Windows XP和Windows 7上进行测试。
在我们维护的应用程序中,发生了一些奇怪的事情。出于某种原因,点击“ - ”键(qwerty布局,顶部的“0”和“=”键之间)根本没有注册。
我们在OnKeyDown中检查了我们发现它的编辑,表单的OnKeyDown(有和没有键预览)甚至是ProcessMessage例程,但是这个键的事件永远不会到达应用程序。 我们得到了OnKeyPress的相同结果。
是的,小键盘上的“ - ”键可以正常工作。此外,此行为仅在此应用程序中出现,但是如果我们创建一个新应用程序,其中仅实现了unit1.pas中默认表单的OnKeyDown。它确实有用。
所以我们设法告诉应用程序正确忽略这一个密钥。 有没有人知道如何(未)完成这项工作?
答案 0 :(得分:2)
大卫的评论是正确的;您可以(使用版本控制)剥离应用程序,直到您了解正在进行的操作。但是我认为您还需要了解以下概念:
表单中的OnKeyDown事件不是键盘快捷键可以使用的唯一位置。你应该找出它的其他地方,这就是为什么Sertac的评论在那里。
应用程序外部的某些内容可能会捕获该键盘键(尽管这在Control或Alt + Key组合中更常见)。
您的表单内或应用程序中的其他位置可能会抓取该密钥并将其占用。
这里有一篇关于KeyPreview的好文章,您也需要了解这一点。