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

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

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

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



★★★老王★★★
★★QQ:33728007★★
...全文
102 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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★★

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧