【发布时间】:2012-05-04 07:54:53
【问题描述】:
我不知道如何解释,但这里是: 我有一个带有一些组合框的网格表格。从这个表单我创建另一个来编辑数据。编辑表单也有一些组合框,如网格。 这些组合框中的值可以从第三种形式进行编辑。 如果它们被编辑,我会向所有打开的表单发送类似广播的消息以更新组合框。
procedure HsBrodcastUpdate;
var
i: integer;
begin
for i := 1 to Screen.FormCount - 1 do
SendMessage(Screen.Forms[i].Handle, WM_FORMUPDATES, 0, 0);
end;
在应该执行更新的每个表单上,我都有:
procedure FormUpdate(var aMessage: TMessage); message WM_FORMUPDATES;
这就像在步枪就足够的情况下使用猎枪一样。 将消息发送到创建编辑表单的表单就足够了
我不确定它是否会提高性能,但我想尝试一下。
我的问题:我怎样才能不使用发送到所有表单的 HsBrodcastUpdate 而是将消息发送到创建发送消息的表单的表单。
【问题讨论】:
-
您无法想象在正常工作的 Windows 系统上每秒发送多少条消息 :)。消除您的消息不会影响性能。
-
在编辑表单中使用
OnEditionDone之类的事件并在owner表单中创建事件处理程序。或仅向所有者表单发送/发布消息。 -
..或者调用所有者控件perform()方法
-
如果您想知道为什么没有人回答,那是因为您还没有提出问题。