delphi 如何用消息发送一个记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何用消息发送一个记录相关的知识,希望对你有一定的参考价值。

正如Windows发送消息给应用程序窗口一样,我们偶尔也需要在应用程序的窗口和控件之间发送消息。Delphi提供了几种途径发送消息,例如Perform()方法(它不依赖Windows API)和SendMessage()、PostMessage() API函数。
(一)Perform()方法
VCL为所有的TControl派生类提供了Perform()方法:Perform()可以发送消息给任何已知对象实例的窗体或控件对象。Perform()方法有3个参数:消息、它对应的lParam和wParam,如下所示:
Function TControl1.Perform(Msg: Cardinal; wParam,lParam: Longint):Longint;
要发送一条消息给一个窗体或控件,使用下面的格式:
RetVal:=ControlName.Perform(MessageID, wParam,lParam);
Perform()是同步调用的,因此直到消息被处理完毕,才能得到返回值。Perform()方法把它的参数组合成一个TMessage记录,然后调用该对象的Dispatch()方法去发送这条消息——绕开了Windows API消息系统。
(二)SendMessage()和PostMessage() API函数
有时候需要发送消息给某个窗口,但并不知道这个窗口的Delphi对象实例。例如我们可能希望发送一条消息给一个非Delphi窗口,但是我们只有该窗口的句柄。幸运的是,Windows提供了两个API:SendMessage()和PostMessage()。这两个函数基本上是相同的,只有一点区别,区别之处在于:SendMessage()和Perform()类似,都是同步调用的,消息直接发往目的窗口,该消息被处理完毕才返回;Postmessage()是异步调用的,发送消息给Windows消息序列,然后立即返回。
SendMessage()和PostMessage()的定义如下:
Function SendMessage(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM): LRESULT;stdcall
Function PostMessage(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM): LRESULT;stdcall
上面的定义中,hwnd是消息目的地的窗口句柄,Msg是消息ID、wParam和lParam是32位附加信息。
说明:虽然SendMessage()和PostMessage()用法相近,它们各自的返回值是不同的。SendMessage()返回被处理的消息的结果值,但是PostMessage()返回的只是一个布尔值,表示是否该消息被放入到目标窗口队列中。另外一个方面,SendMessage()是同步调用的,PostMessage()是异步调用的
参考技术A 发送他的地址就行了
type MyRecord = Record
DD:Double
end;
pMyRecod = ^MyRecord;
postmessage(handle,message,integer(pMyRecord),0);
用的时候pMyRecord(message.wParam);
参考技术B WM__COPYDATA

如何用nodejs模拟get发送消息

参考技术A   var http = require('http');
  var url = require('url');
  var qs = require('querystring');

  http.createServer(function(req, res)
  res.writeHead(200, "Content-Type": "text/plain");
  var query = url.parse(req.url).query;
  res.end(JSON.stringify(qs.parse(query)));
  ).listen(3000);

以上是关于delphi 如何用消息发送一个记录的主要内容,如果未能解决你的问题,请参考以下文章

Delphi - 将记录作为窗口消息发送

delphi adodataset如何用如sql语句 增、删、改、查记录 类似于下面这样,但adodataset我不知道怎么弄

Delphi -> Delphi prism,如何使用记录数组?

如何用Python记录微信撤回的消息

C#调用delphi记录结构体问题

Delphi体系内部的4种消息传递办法(Send,Post,Perform,Dispatch)