起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1484|回复: 4

[分享]平台上自定义消息的发送和接收**

 关闭 [复制链接]
发表于 2007-9-21 11:43:56 | 显示全部楼层 |阅读模式
自定义消息的定义

  TMyMessage = class(TBizMessage)
  private
    FMsg: String;
  public
    constructor Create(AMsg: String);
    static function Name: String;
    property msg: String read FMsg;
  end;

implementation

constructor TMyMessage.Create(AMsg: String);
begin
  inherited Create(TMyMessage.Name);
  FMsg := AMsg;
end;

static function TMyMessage.Name: String;
begin
  Result := 'MyMessage.Test';
end;
回复

使用道具 举报

 楼主| 发表于 2007-9-21 11:44:38 | 显示全部楼层
发送消息

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

使用道具 举报

 楼主| 发表于 2007-9-21 11:46:41 | 显示全部楼层
定义消息接收类
type
  TMyMessageHandler = class(TBizMessageHandler)
  private
    FMemo: TMemo;
  public
    procedure DoExecute(AMessage: TBizMessage; const AParam: THandleParam;
      var Handled: Boolean); override;
  end;

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;
  end;
end;

在特定环境上增加这个消息处理对象
procedure TMainForm.AddMsgHandler;
begin
  lmh := TMyMessageHandler.Create;
  TMyMessageHandler(lmh).FMemo := Memo1;
  Memo1.Clear;
  BizSys.GlobalContext.AddMessageHandler(TMyMessage.Name, lmh);
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-21 11:47:51 | 显示全部楼层
完整的例子

收发消息.rar

16.08 KB, 下载次数: 297

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-2 16:28:25 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-4-18 23:01 , Processed in 0.049828 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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