【发布时间】:2012-02-29 11:05:08
【问题描述】:
我目前正在尝试基于 Firemonkey 开发一个项目。我将 Firemonkey 用于它的 UI 功能,因为该项目由许多较小的应用程序组成,每个应用程序都有 3D 方面。我目前仅使用 FMX 框架开发/部署到 Windows,但以后可能会跨平台。
通过在后台构建 VCL Windows 应用程序以执行非常具体的操作,然后构建 FMX 前端,我已经解决了我遇到的大多数问题。但是,这仅适用于您只想执行应用程序以执行其设计执行的操作,因此可以使用参数执行应用程序。在其中一个应用程序中,我遇到了使用消息(或类似的东西)的需要。例如,在我的 FMX 应用程序中,如果我单击“button1”,我希望它向后台 VCL 应用程序发送消息以执行“action1”,而不是使用参数执行它。
一个很好的例子是在后台应用程序中使用 VCL TMediaPlayer,前端 FMX 应用程序用于显示信息并提供对播放、暂停等的控制。这样它本质上变成了一个具有 VCL 能力的 FMX UI。
到目前为止,我一直无法找到关于如何使用 Firemonkey 处理消息(例如在 VCL 中,它们将使用“SendMessage”或“PostMessage”或类似的东西来完成)的任何信息,通过本地帮助文件或广泛的谷歌搜索。我出现的所有内容都与电子邮件有关(可能是因为我的大多数搜索词中都包含“消息”一词)。
Can anyone point me in the right direction on how messages would be handled with Firemonkey/FMX?
问候, 斯科特·普里查德
【问题讨论】:
-
您知道您可以在同一个应用程序进程中使用 VCL 和 FMX,不是吗?好吧,这确实需要一些额外的工作,但在技术上是可行的,并且有第三方库和文章向您展示了如何做到这一点。因此,如果您可以简单地从 FMX UI 事件处理程序调用您的 VCL 按钮的
Click()方法(或者更好的是,将您的共享代码隔离在其自己的函数中,VCL 和 FMX 都可以调用时),那么您不需要直接处理窗口消息需要)。
标签: delphi message-queue delphi-xe2 firemonkey