复习:用postmessage在进程间传递消息

        最近在用delphi做一个“小玩意”,要做一个测试程序来做记录分析,记录程序对大部分要记录的东西没有什么问题,比如对一个鼠标单击事件响应就记录一次。但是有一个事件是发生在“小玩意”内部的,我也要进行记录。记得以前用过postmessage在窗体间传递消息的,就用他!

        要做的事情就是2件:(1)在主程序“小玩意”中加入发射消息代码;(2)在测试程序中加入接收消息代码。

    (1)在“小玩意”中“我的事件”函数中加入:    

        //以下用于调试的时候  记录“我的事件”的次数
          if hand1=0 then
            hand1:=windows.findwindow(nil,pchar('mytest'));   //根据窗体名称找到测试程序窗体的句柄
          postmessage(hand1,1000,0,1);                                   //向测试程序窗体发送一个消息,消息号为1000

      (2)在测试程序中加入接收代码

     ............   

     private
         { Private declarations }
        public
           procedure Onreceive(var msg: TMessage); message 1000;        //定义消息响应,消息号与发射端一致
        end;

       var
         num:integer;     // “我的事件”计数

       implementation

      {$R *.dfm}

 

 .......

       //接收消息
        procedure TForm1.Onreceive(var msg: TMessage);
        begin
                 num:=num+1;                                        //接收一个消息,计数加1
                  label .Caption :=inttostr(num);          //显示计数
         end;

.......................

//============

     我只需要记录事件次数,所以很简单的响应即可,postmessage的后面2个参数还可以用来传递更多消息包括字符串以及“很大”的东西,记得一本书上说他的实质是两个进程共享一个消息交换区。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值