- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我和一位同事正在争论哪种方式对系统资源的负担较小。 (注意:这不是我想要答案的问题。相反,标题和下面粗体的行是我寻求答案的问题。)
1. Using KeyPreview to get the keypresses on a form.
或
2. Using defining an OnMessage procedure and handling it there.
乍一看,KeyPreview 似乎不会造成系统负担,因为定义 OnMessage 过程会导致我们的程序检查传入的每条消息。请注意,我们不关心的消息会导致它在第一个 if 时跳出陈述。最坏的情况是我们会对每条消息执行一个 if 语句。
但是我们想知道 Delphi 如何处理 KeyPreview 属性...我们想知道 Delphi 是否在内部定义了自己的 OnMessage 并查看消息,然后触发与按键相关的事件。
如果是这种情况,那么两种方法是否大致相同?
最佳答案
正如其他人已经说过的 - 可能没有明显的差异。
我只是想指出Peter Below
关于该主题的一篇优秀文章:A Key's Odyssey archive
This article describes the key message processing as implemented in Delphi 2007 for Win32 VCL forms applications. A few things have changed in this area compared with Delphi 7, but these are mostly additions that I will highlight when we get to them. Most of this code has survived basically unchanged since the times of Delphi 1, a tribute to the robustness of the design. If you are in a hurry or not interested in all the details you can refer to the outline in the summary for a condensed overview.
关于delphi - Delphi 的 KeyPreview 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509242/
我希望在框架内有一个 KeyPreview 功能,我的意思是,当输入(例如,选择框架的一个控件,或者鼠标位于内部)位于框架中时(该框架将有多个面板)和其他控件),然后用户按下的键首先由框架处理。 有办
我和一位同事正在争论哪种方式对系统资源的负担较小。 (注意:这不是我想要答案的问题。相反,标题和下面粗体的行是我寻求答案的问题。) 1. Using KeyPreview to get the key
在 .Net 中有一个称为 KeyPreview 的功能。我怎样才能在 WinApi 中做到这一点。也许我不一定需要这个,但我的 hWnd 有 WM_KEYDOWN,但是当我的文本框有焦点时它不会收到
我正在考虑为我的一些应用程序从 WinForms 转向 WPF,目前我正在研究组合的条形码阅读器/文本输入程序(医疗保健患者表格)。 为了能够处理条形码字符,我依赖 WinForms 中的 Keypr
我正在构建一个小型表单应用程序,我才刚刚开始。但我有这个问题:如果我将控件放入窗体,则不会触发 KeyDown 事件。我知道 KeyPreview属性,并将其设置为 true。但这没有帮助... :(
我想知道 Form.KeyPreview 属性到底有什么用?它为什么存在,我将其设置为 true 有什么“风险”?我想它一定有一些负面影响 - 否则它根本不应该存在(或者至少默认情况下是正确的)? 编
我正在编写一个 metro 应用程序,在用户开始输入时,焦点可以随时跳转到单个文本框。但我想不出如何在本地实现此功能,而不修改其他用户控件来检测按键按下并将焦点转移到文本框。 在 WinForms 中
在 VS Express 12 中重现的步骤: 创建一个新的 Windows 窗体应用程序项目 添加一个按钮 将表单 KeyPreview 设置为 true 向表单添加 keyDown 事件 只要按钮
我正在尝试扩展我的自定义 KeyboardView。有什么方法可以自定义 keyPreview 和 popUpKeyboard 外观而无需从头开始实现 KeyboardView 吗? 最佳答案 key
我有一个包含十几个按钮、单选按钮和只读编辑控件的 MFC 对话框。 我想知道用户何时在该对话框中按下 Ctrl+V,而不管哪个控件具有焦点。 如果这是 C#,我可以设置 KeyPreview 属性,我
我是一名优秀的程序员,十分优秀!