windows - Delphi Firemonkey Cross Platform - 传递 Windows 句柄的通用方法

标签 windows macos delphi firemonkey delphi-xe6

我在我的第二个适用于 Windows 和 OSX 的 Firemonkey 应用程序中埋头苦干,慢慢地转换我的函数库以处理跨平台问题。我正在尝试创建一个通用的 SelectDirectory 函数,该函数将为 Windows 或 OSX 运行特定于平台的代码。我让 SelectDirectory 在两个单独调用的平台上工作得很好,但特定于 Windows 的平台需要 hwndparent 句柄才能运行。

这是在 IFDEF MSWINDOWS 指令中运行的(就像 OSX 在其编译器指令中一样)。如何将通用句柄传递给此函数,或者如何引用 Application.MainForm 或可以在此函数内转换为 Windows 句柄的内容?我希望避免在该库的 uses 子句中使用 Firemonkey 特定单元。我宁愿以某种方式传入 THandle 并将其转换为函数内部的 TWindowHandle,但在处理它一个小时后,我不知道如何在不影响我的库的实用性的情况下做到这一点。

感谢任何帮助。

最佳答案

使用WindowHandleToPlatform获取具有 Wnd 属性的 Windows 特定 TWinWindowHandle。这是 native 窗口句柄 (HWND)。

关于windows - Delphi Firemonkey Cross Platform - 传递 Windows 句柄的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328042/

相关文章:

windows - 查找使用的编程语言

c++ - 创建 Windows 窗体控件 (C++)

linux - 磁盘性能基准测试(Xen 上的 Windows 和 Linux)

macos - 去构建并执行: fork/exec: permission denied

delphi - 如何使用 ClientDataset 在运行时创建必填字段

delphi - 为什么 Delphi 中的嵌套子例程会产生性能损失?

Windows XP : change background color programatically (how to redraw Desktop after changing registry key? )

python - 如何将 AES 与 GAE python 一起使用?

android - 崩溃/重新安装后 LogCat 不显示任何内容

delphi - 为什么我的 TSplitter 位于错误的位置?