0

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

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

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

是的,小键盘上的“-”键确实有效。此外,这种行为只在这个应用程序中可见,但是如果我们创建一个新应用程序,只实现了 unit1.pas 中默认表单的 OnKeyDown。它确实有效。

因此,我们设法以某种方式告诉应用程序正确忽略这一键。有谁知道如何(取消)完成?

4

1 回答 1

2

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

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

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

  3. 您的表单内或应用程序中的其他地方可能正在获取该密钥并使用它。

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

于 2012-05-05T01:07:28.550 回答