Delphi XE2:是否可以在没有FireMonkey的情况下创建Mac GUI应用程序?

时间:2011-09-16 08:40:19

标签: delphi delphi-xe2 firemonkey

使用Delphi XE2,是否可以在不使用FireMonkey的情况下创建Mac GUI应用程序?如果是这样,可以使用什么以及如何进行呢?

2 个答案:

答案 0 :(得分:21)

原则上,这是可能的。但是您需要翻译Apple公开的Objective-C标头和类。这是一项艰巨的任务,其中一部分已由FreePascal人员或Objective-Pascal人员完成。

但是没有什么能阻止你自己翻译(丢失)标题。您可以使用Objective-C运行时described on this page中的纯C函数调用类的方法并执行其他函数。它只是很多工作,因为类库很庞大。你可以从Core Foundation开始,然后是一般的Foudnation,然后是Cocoa,Quartz等。这取决于你。您可能还想为类编写包装器。

目前,开箱即用,没有简单的方法可以做你想做的事。

但我打算写一个简单的应用程序作为概念证据,它是可能的。但这可能需要一些时间。

更新

您还可以在 Macapi 命名空间中使用由Embarcadero翻译的CoreFoundation标头(即以 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

答案 1 :(得分:1)

您是否要在没有VCL的情况下创建Windows GUI应用程序? 这是一个相同的想法,直接使用MacAPI而不是WinAPI 可能有点困难(轻描淡写),因为从Delphi / Pascal的角度来看,没有关于如何做到这一点的大量文档。