我不知道如何解释这一点,但这里有: 我有一个窗体与一些组合框的网格。从这个表格我创建另一个编辑数据。编辑表单也有一些组合框,如网格。 这些组合框中的值可以从第三种形式进行编辑。 如果编辑它们,我会向所有打开的表单发送类似广播的消息来更新组合框。避免消息广播
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;
这就像使用shootgun当浅滩就足够了。 它应该足以将消息发送到创建编辑窗体的窗体
我不确定它是否会提高性能,但我想尝试。
我的问题:我怎么能代替使用发送到所有窗体的HsBrodcastUpdate发送消息到创建发送消息的窗体的窗体。
你无法想象有多少消息是每秒发送一个工作的Windows系统上:)。消除你的消息将不会影响性能。 – kludg
在编辑表单中使用类似'OnEditionDone'的事件并以'owner'形式创建事件处理程序。或者只发送/发布消息给所有者表单。 – teran
..或致电业主控制执行()方法 –