我在我的第二个适用于 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/