Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 调用方函数完成或在FMX或系统库中返回后调用/执行函数_Delphi_Firemonkey_C++builder - Fatal编程技术网

Delphi 调用方函数完成或在FMX或系统库中返回后调用/执行函数

Delphi 调用方函数完成或在FMX或系统库中返回后调用/执行函数,delphi,firemonkey,c++builder,Delphi,Firemonkey,C++builder,在调用“SendMessage”的函数完成后,TMessageManager的“SendMessage”方法不会调用“Subscribed”或关联的回调函数 对于这个问题的可用解决方案,我考虑使用TTimer,时间间隔尽可能短,为1毫秒,这样当您在调用者函数中启用计时器时,TTimer的OnTimer事件必须在启用它的函数之后触发。我认为这是解决这个问题的一种缓慢而丑陋的方法 FMX或系统库中是否有任何应用程序范围的消息传递功能,可以在调用方函数完成或返回后调用回调函数?在它们之间处理/调用的其

在调用“SendMessage”的函数完成后,TMessageManager的“SendMessage”方法不会调用“Subscribed”或关联的回调函数

对于这个问题的可用解决方案,我考虑使用TTimer,时间间隔尽可能短,为1毫秒,这样当您在调用者函数中启用计时器时,TTimer的OnTimer事件必须在启用它的函数之后触发。我认为这是解决这个问题的一种缓慢而丑陋的方法

FMX或系统库中是否有任何应用程序范围的消息传递功能,可以在调用方函数完成或返回后调用回调函数?在它们之间处理/调用的其他应用程序消息也可以。顺便说一下,这是用于FMX或多设备跨平台开发的。不特定于VCL或Windows环境


我真正想要的是能够向自己的应用程序发送消息,类似于Windows API函数PostMessage的行为。返回PostMessage函数后,PostMessage发送的消息将从windows过程回调函数中显示。

TMessageManager.SendMessage是同步的。对于异步发送,请查看您是从工作线程发布消息,还是从主UI线程发布消息。

谢谢,它在主线程上使用TThread::ForceQueue方法工作。我使用了TThread::ForceQueue 0,pMyObj->ForceQueueOut;在我的类中触发函数和函数实现的代码行是:void uu fastcall MyClass::ForceQueueOut{/*…*/}