起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 275|回复: 14

【结贴】自定义消息的接收**

[复制链接]
发表于 2008-11-27 16:27:15 | 显示全部楼层 |阅读模式
照着
http://bbs.justep.com/forum.php?mod=viewthread&tid=18235
做下去。
代码是一模一样的。


一共三个功能:一个发消息的和两个接消息的。其中两个接消息的代码一模一样的。

结果:单个打开任意一个接消息的功能,用发消息的功能发消息,能够在memo里显示。 但是当两个接消息的功能都开打的情况下,只有后打开的功能能够接消息。

希望试验后给个答复。版本3002
回复

使用道具 举报

发表于 2008-11-27 16:34:59 | 显示全部楼层
注意事项:
  在消息上有一个Name的属性,注册消息处理对象时候同样需要提供一个Name,只有这两者匹配才可以处理,也就是说,同样的消息类,可以通过不同的Name来定义多个消息对象,对应多个不同的消息处理对象
在消息处理函数中,Handled表示是否已处理这个消息,如果没有就传递到下一个消息处理对象来处理。
----摘自alang的帖子
procedure TMyMessageHandler.DoExecute(AMessage: TBizMessage; const AParam: THandleParam;
      var Handled: Boolean);
begin
  if AMessage is TMyMessage then
  begin
    FMemo.Lines.Add((AMessage as TMyMessage).msg);
    Handled := True;   ///////////////////写成false

  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-27 16:50:46 | 显示全部楼层
因为不知道有多少个接收消息的功能

都设置成
Handled :=false; //对系统有什么影响。
回复 支持 反对

使用道具 举报

发表于 2008-11-27 16:59:50 | 显示全部楼层
发消息就是要影响平台里面的功能啊!
不影响,消息岂不没用了...
你既然接受这种类的消息,就不怕他影响吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-27 17:05:15 | 显示全部楼层

那在什么情况下设置 Handled := True;
回复 支持 反对

使用道具 举报

发表于 2008-11-27 17:06:46 | 显示全部楼层
不需要其他地方处理这个消息就true.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-28 09:41:06 | 显示全部楼层
谢谢

如果调用一个功能
消息处理在这个功能里声明。 在何时释放这个消息处理类?
我在窗体的close和destory试了下。 在关闭平台时会出错。
回复 支持 反对

使用道具 举报

发表于 2008-11-28 10:01:50 | 显示全部楼层
报什么错误?贴图看看。
回复 支持 反对

使用道具 举报

发表于 2008-11-28 10:11:40 | 显示全部楼层
1楼链接的附件代码里面释放了.

procedure TMainForm.BizFormDestroy(Sender: TObject);
begin
  if Assigned(lmh) then
    lmh.Free;
end;

var
  lMsg: TMyMessage;
begin
  lMsg := TMyMessage.Create(Edit1.Text);
  BizSys.GlobalContext.SendMessage(lMsg);
  lMsg.Free;
end;
回复 支持 反对

使用道具 举报

发表于 2008-11-28 10:11:41 | 显示全部楼层
1楼链接的附件代码里面释放了.

------------接收端
procedure TMainForm.BizFormDestroy(Sender: TObject);
begin
  if Assigned(lmh) then
    lmh.Free;
end;
---------发送端
var
  lMsg: TMyMessage;
begin
  lMsg := TMyMessage.Create(Edit1.Text);
  BizSys.GlobalContext.SendMessage(lMsg);
  lMsg.Free;
end;

运行这个例子也报错?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-29 23:56 , Processed in 0.042634 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表