Delphi在Mac上可行吗?

23

我负责一个Delphi/Win32项目管理应用程序。我们刚刚完成了从Delphi 2009迁移。

越来越多的美国用户希望在他们的Mac电脑上使用该应用程序,而大部分用户是Windows用户。

是否有解决方案可以轻松构建一个Delphi应用程序,使其在MacOS上本地运行?

随着2011年底发布的RAD Studio XE2,Delphi开发者应该能够构建一次,分发于Win 32/64和MacOS 32,iOS支持也被承诺。


6
刚从Delphi XE2世界巡回演示回来 - Delphi适用于MacOS X和iOS现已发布,极有可能在一个月内发布。原生Linux和Android应用程序将于明年推出。使用GPU本地GUI的FireMonkey构建应用程序,您的应用程序基本上可以跨平台。您只需要放弃VCL即可。 - Misha
11个回答


21

Mac OS X不能运行Windows程序。它不提供您需要的任何API,例如kernel32、user32等函数。

您可以尝试通过Crossover运行程序。其他选项包括虚拟机,例如VMware FusionParallels

另一个可能尝试的方法是使用.NET。将您的程序转换为使用Delphi的.NET版本,然后在Mac上的Mono上运行它。但我不会对这种方法抱有太多信心。


9
你在OSX上运行本地Delphi代码的选择非常有限。您可以使用Lazarus/Freepascal,但它远远落后于Delphi。它将生成本地代码。或者,您可以使用Prism和Mono。那显然很好用。请查看http://devcenter.remobjects.com/osxhttp://wiki.remobjects.com/。还要查看remobjects博客以及embarcadero.public.delphiprism.mono.osx新闻组。这需要mono可再发行版。但是,mono还支持链接和提前编译,因此您可能能够获得接近本地代码的东西。在任何情况下,您都需要重新编写用户界面,因为osx的外观和惯例不同。

3
仅就最后一句话而言,我赞同。所有将这个问题视为主要是编译器和库问题的人都会面临巨大的困难。 - mghie

9

这是一个非常古老的帖子,但对于浏览此处并在2011年第三季度或之后寻找答案的人来说,答案是肯定的。

随着今年Rad Studio XE2的发布,Delphi开发人员将能够为Mac OS创建本地应用程序,以及Win32、Win64和iOS平台,更多平台即将推出。


谢谢您的添加 - 我也一直关注Embarcadero的最新动态。我会更新上面的问题。 - Ryan

4

Delphi和Mac的未来可能有所希望。

Delphi.Org的播客回顾了CodeRage III(2008年12月)的闭幕演讲,Embarcadero的Wayne Williams谈到了未来。它说:

我认为Wayne演讲中最令人兴奋的部分是标有“未来”的幻灯片,列出了一些公司范围内正在进行的研究项目。它特别列出了Mac、Linux、Cloud、应用虚拟化、FireBird、Touch、64位、SMP和多核。当我询问是否有适用于Mac和Linux的Delphi时,他们说今天,使用Delphi Prism和Mono可以达到Mac和Linux,但在他们的实验室里,他们正在开发原生支持,并且已经取得了重大进展。


4
虽然 Lazarus 的路线不是不需要重新编译就能实现的,但我对它有好的经历。我之前曾尝试 (Delphi).NET+mono 的方式(到WinCE、Linux和OS X),但失败惨重。
Codegear 说了很多话,但下一个 Delphi 版本只会有一个 64 位的预览版(cmdline compiler)。如果你假设在此版本之后就是完整的 64 位产品,那么可以确定 OS X 至少还需要两年的时间。
Lazarus 或者重新编码。

3

我听取了最近一次Delphi 2009展示电话会议的内容,他们说可以使用Delphi Prism在Mac上运行,并且有一个名为Oxidizer的自动转换工具。我不确定是否称其为本地化,因为您需要使用Mono,但我认为它比Wine更好。


小修正:RemObjects Oxygene 是 Prism 编译器的旧名称,转换工具称为 Oxidizer。Delphi 的 RTL 的 Prism 实现称为 ShineOn。 - Paul-Jan
+1:Prism一定可以通过Cocoa在Mac上执行Delphi! - Robert MacLean

2

另一种选择是开发基于Web的应用程序。这避免了“GUI不同”的问题,并使您能够专注于您的产品。如果您查看一些最新的AJAX控件,您可以获得接近完整桌面应用程序体验而不必牺牲太多。如果您的应用程序需要在本地运行,则使用Delphi开发本地Web服务,并将其翻译为专门针对OSX的Lazarus似乎是一项更容易管理的任务。


1

这个问题没有一个真正的好解决方案。有人提到了Lazurus,但它还没有完全成熟。Delphi不是跨平台工具。如果你真的想要一个Mac版本,那么你可能应该考虑其他选择。

如果你的应用程序面向消费者,你的用户会期望有很多Cocoa的好处。使用其他任何东西来制作Mac应用程序会让他们感到不满。

然而,如果它更像是一个商业应用程序,那通常就不那么重要了。我使用REALbasic构建了许多Mac/Windows商业应用程序。它与Delphi非常相似,所以应该很容易上手。


-1 对于不回答问题并且在Prism等跨平台工具存在的情况下声称Delphi不是跨平台的说法。 - Robert MacLean
我回答了这个问题。我的答案是“不”。仅仅因为它存在,并不意味着Delphi Prism是解决这个问题的好方法。 - Paul Lefebvre
罗伯特:Delphi是否等同于Delphi Prism取决于您的观点。我个人认为不是,因为它与经典Delphi代码不兼容的方式很多。http://prismwiki.codegear.com/en/Win32_Delphi_vs._Delphi_Prism - Mason Wheeler
我甚至没有考虑过Delphi.NET。 - Marco van de Voort


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接