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

本文介绍如何使用Delphi通过postmessage实现主程序与测试程序间的事件记录。具体步骤包括在主程序中发送消息及在测试程序中定义消息响应,通过计数更新界面显示记录事件触发次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近在用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个参数还可以用来传递更多消息包括字符串以及“很大”的东西,记得一本书上说他的实质是两个进程共享一个消息交换区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值