OnKeydown for“ - ”在Delphi 7应用程序中没有被解雇

时间:2012-05-04 12:58:10

标签: delphi delphi-7 onkeydown

我们正在使用Delphi 7企业版,应用程序基于Windows XP构建,在Windows XP和Windows 7上进行测试。

在我们维护的应用程序中,发生了一些奇怪的事情。出于某种原因,点击“ - ”键(qwerty布局,顶部的“0”和“=”键之间)根本没有注册。

我们在OnKeyDown中检查了我们发现它的编辑,表单的OnKeyDown(有和没有键预览)甚至是ProcessMessage例程,但是这个键的事件永远不会到达应用程序。 我们得到了OnKeyPress的相同结果。

是的,小键盘上的“ - ”键可以正常工作。此外,此行为仅在此应用程序中出现,但是如果我们创建一个新应用程序,其中仅实现了unit1.pas中默认表单的OnKeyDown。它确实有用。

所以我们设法告诉应用程序正确忽略这一个密钥。 有没有人知道如何(未)完成这项工作?

1 个答案:

答案 0 :(得分:2)

大卫的评论是正确的;您可以(使用版本控制)剥离应用程序,直到您了解正在进行的操作。但是我认为您还需要了解以下概念:

  1. 表单中的OnKeyDown事件不是键盘快捷键可以使用的唯一位置。你应该找出它的其他地方,这就是为什么Sertac的评论在那里。

  2. 应用程序外部的某些内容可能会捕获该键盘键(尽管这在Control或Alt + Key组合中更常见)。

  3. 您的表单内或应用程序中的其他位置可能会抓取该密钥并将其占用。

  4. 这里有一篇关于KeyPreview的好文章,您也需要了解这一点。