请问:如何让Application广播消息,使其拥有的的窗体都能够收到该消息。

largewang 2002-07-11 11:55:00
我用Application.Dispatch(Msg),不能做到。

分只给第一个解决问题的老大。

////////////////////////////////////////
请不要在这个帖子里面废话(推、踢什么的)
////////////////////////////////////////



★★★老王★★★
★★QQ:33728007★★
...全文
74 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
largewang 2002-07-11
各位:全错! 请理解我的题意。


我现在已经有解决方法了,所以以下就给最优解给分了。



★★★老王★★★
★★QQ:33728007★★
  • 打赏
  • 举报
回复
netlib 2002-07-11
postmessage(HWND_BROADCAST,WM_Close,0,0);
这就是给所有的窗口发消息了。

建议你用其它消息测试,不要用Wm_close;
  • 打赏
  • 举报
回复
copy_paste 2002-07-11
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
with Msg do
if Msg = WM_SomeMsg then
for I := 0 to Screen.FormCount - 1 do //其中一个
//SendMessage(Screen.Forms[I].Handle, msg, LParam, WParam);
//PostMessage(Screen.Forms[I].Handle, msg, LParam, WParam);
//Screen.Forms[I].Perform(msg, WParam, LParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage = AppMessage;
end;

procedure TForm1.FormDeactivate(Sender: TObject);
begin
Application.OnMessage := nil;
end;
  • 打赏
  • 举报
回复
zhouzm 2002-07-11
发送消息用Dispatch(Msg),然后用GetMessage来接受消息,怎么不能做到
  • 打赏
  • 举报
回复
yansea 2002-07-11
让application广播消息是什么意思?如果要广播用 broadcast 就可以了。
当然响应代码要你自己写的。
  • 打赏
  • 举报
回复
yansea 2002-07-11
让application广播消息是什么意思?如果要广播用 broadcast 就可以了。
当然响应代码要你自己写的。
  • 打赏
  • 举报
回复
largewang 2002-07-11
copy_paste(木石三):

注意我的问题是让Application广播消息到其下的每个TForm,你的OnMessage是接收消息。

不过你的方法也说到点子上了,分就给你了。



★★★老王★★★
★★QQ:33728007★★
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

5096

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
申请成为版主
帖子事件
创建了帖子
2002-07-11 11:55
社区公告
暂无公告