使用Delphi XE2,是否可以在不使用FireMonkey GUI的情况下创建Mac GUI应用程序?如果可以,可以使用什么以及如何进行?
最佳答案
原则上是可以的。但是您需要翻译 Apple 公开的 Objective-C header 和类。这是一项艰巨的任务,其中一部分已经由 FreePascal 人员或 Objective-Pascal 人员完成。
但是没有什么可以阻止您自己翻译(丢失的) header 。您可以在 Objective-C 运行时中使用纯 C 函数调用类的方法并执行其他功能 described on this page 。由于类库很大,这只是大量工作。您可以从核心基金会开始,然后是一般基金会,然后是 cocoa 、 quartz 等。这取决于您。您可能还想为这些类编写包装器。
目前,没有简单的方法可以做到您想要的事情。
但我计划编写一个简单的应用程序作为概念证明这是可能的。不过,这可能需要一些时间。
更新
您还可以在 Macapi 命名空间中使用由 Embarcadero 翻译的 CoreFoundation header (即以 Macapi 开头的所有单元,例如 Macapi.ObjectiveC.pas 、Macapi.ObjcRuntime.pas、Macapi.CocoaTypes.pas 等)以及System.Mac.CFUtils。在那里您将找到(一些)主要的 CoreFoundation 类以及从 Delphi 使用它们的简单方法。不过,我不确定这些是否已正确记录,因此您必须自己找出如何使用它们。代码中的注释也许可以帮助您。
有关此内容的更多信息,请参阅 in the docwiki 。请注意,控制台应用程序也可以有 GUI。
更新2
是的,这绝对是可能的。请参阅http://rvelthuis.de/zips/sampleniblessapp.7z 。请注意,最重要的 Macapi 单元是 Macapi.AppKit。
关于德尔福XE2 : Is it possible to create Mac GUI applications without FireMonkey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7442131/