【发布时间】:2011-06-28 15:46:47
【问题描述】:
我和一位同事正在争论哪种方式对系统资源的负担更小。 (注意:这不是我想要回答的问题。而是标题和下面加粗的行是我寻求答案的问题。)
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 并查看消息以触发与按键相关的事件。
如果是这种情况,那么这两种方法是否大致相同?
【问题讨论】:
-
看看源码就知道了。基本上,它使用的是消息处理程序。
-
我就是这么想的,只是还没想到。
-
我确定您的意思是 KeyPreview 而不是 OnKeyPreview。
-
我确实做到了。我已经改变了标题。泰。
标签: delphi