Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi XE2:在没有FireMonkey的情况下是否可以创建Mac GUI应用程序?_Delphi_Delphi Xe2_Firemonkey - Fatal编程技术网

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

Delphi XE2:在没有FireMonkey的情况下是否可以创建Mac GUI应用程序?,delphi,delphi-xe2,firemonkey,Delphi,Delphi Xe2,Firemonkey,使用Delphi XE2,是否可以在不使用FireMonkey的情况下创建Mac GUI应用程序?如果是这样的话,可以使用什么?人们将如何进行 原则上,这是可能的。但是您需要翻译Apple公开的Objective-C头和类。这是一项艰巨的任务,其中一部分已经由弗里帕斯卡人或客观的帕斯卡人完成 但是没有什么可以阻止您自己翻译(丢失的)标题。您可以在Objective-C运行时中使用纯C函数调用类的方法并执行其他函数。因为类库很大,所以需要做大量的工作。你可以从核心基础开始,然后是一般的习惯,然后是

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

原则上,这是可能的。但是您需要翻译Apple公开的Objective-C头和类。这是一项艰巨的任务,其中一部分已经由弗里帕斯卡人或客观的帕斯卡人完成

但是没有什么可以阻止您自己翻译(丢失的)标题。您可以在Objective-C运行时中使用纯C函数调用类的方法并执行其他函数。因为类库很大,所以需要做大量的工作。你可以从核心基础开始,然后是一般的习惯,然后是可可、石英等等,这取决于你。您可能还想为这些类编写包装器

目前,没有现成的方法来做你想做的事。

但我计划写一个简单的应用程序来证明这是可能的。不过,这可能需要一些时间

更新 您还可以在Macapi名称空间中使用Embarcadero翻译的CoreFoundation标头(即以Macapi开头的所有单元,如Macapi.ObjectiveC.pas、Macapi.ObjcRuntime.pas、Macapi.CocoaTypes.pas等),以及System.Mac.CFUtils。在那里,您可以从Delphi中找到(一些)主要的CoreFoundation类和使用它们的简单方法。不过,我不确定这些是否有适当的文档记录,因此您必须自己了解如何使用它们。代码中的注释可能会对您有所帮助

更多关于这方面的信息可以找到。请注意,控制台应用程序也可以有GUI

更新2
是的,这绝对是可能的。请参见。请注意,最重要的Macapi单元原来是Macapi.AppKit

是否要创建不带VCL的Windows GUI应用程序?
同样的想法,直接使用MacAPIs而不是WinAPI。

可能有点困难(轻描淡写),因为从Delphi/Pascal的角度来看,没有那么多关于如何实现这一点的文档。

我认为使用FreePascal会更容易,因为FreePascal支持这一点已经很久了。合乎逻辑的问题是为什么?@Misha:目前没有理由。我只是好奇FM是否是唯一的选择。Shannon,我相信只要付出足够的努力,你就可以在没有FireMonkey的情况下做到这一点,但这种努力总是会更大一个数量级。Delphi的跨平台应用程序版本为1.0,因此我预计在未来12-24个月内,开发的易用性将显著提高。我不会深入到太深的地方,因为风景会很快改变;-)不过,它与Xcode和Objective-C中的编程并没有什么不同。我试过了,成功了。事实上,令人惊讶的是(经过一段时间的习惯之后)它竟然变得如此简单。下一个项目实际上将使用一个.xib文件来放置控件。@Rudy,呃,如果它与在Xcode和Objective-C中编程没有什么不同,那么为什么不在Xcode和Objective-C中编程,省去你自己的麻烦呢!我想作为一个“可能”的练习,你已经证明了这是可能的,但无论出于什么目的,你都必须有一种受虐癖的倾向才能做到这一点。@Misha:GUI相关的代码可能像是用Objective-C编写的,其余的不一定是(也就是说,只有MVC的V部分必须是这样的)。这是一个概念证明,实际上可以作为一个类似VCL的框架的案例研究,有人倾向于这样做。达伦·科辛斯基(Emabrcadero)写道,他将在博客上介绍马卡皮单位以及如何使用它们。对于那些想要模仿FMX等控件而使用本机组件的人来说,这可能是一个开始。实际上并不需要很多工作(尽管在代码中放置控件总是需要更多的工作)。我相信也可以使用XIB或NIB。这是我想尝试的下一件事。你也可以编写一个代码生成器,它采用VCL格式,并为你编写类似的代码。@RudyVelthuis嗨,Rudy,你对下面的问题有什么想法吗?我设法创建了一个空的webview框架,但没有要加载的内容: