【问题标题】:Delphi on the Mac - possible? [closed]Mac上的Delphi - 可能吗? [关闭]
【发布时间】:2010-10-04 23:39:43
【问题描述】:

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

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

是否有解决方案可以轻松构建在 MacOS 上原生运行的 Delphi 应用程序?

随着 2011 年底 RAD Studio XE2 的发布,Delphi 开发人员应该能够在 Win 32/64 和 MacOS 32 上构建一次并分发,并承诺支持 iOS。

【问题讨论】:

  • 刚刚从 Delphi XE2 世界巡回展示会回来 - 用于 MacOS X 和 iOS 的 Delphi 现在就在这里,很有可能在一个月内发布。本机 Linux 和 Android 应用程序将在明年推出。使用 FireMonkey、GPU 原生 GUI 构建应用程序,您的应用程序几乎可以跨平台开箱即用。你只需要把 VCL 抛在脑后。

标签: ios delphi macos


【解决方案1】:

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

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

您可能会尝试的另一件事是使用 .Net。将您的程序转换为使用the .Net version of Delphi,然后在Mono on the Mac 上运行它。不过,我不会对这种方法很有信心。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    我听了最近的一次 Delphi 2009 展示电话会议,他们说可以使用 Delphi Prism 在 Mac 上运行,并且有一个名为 Oxidizer 的自动转换实用程序。我不确定你是否会称它为原生,因为你需要 Mono,但我认为它比 Wine 更好。

    【讨论】:

    • 小修正:RemObjects Oxygene是Prism编译器的旧称,转换工具叫Oxidizer。 Delphi 的 RTL 的 Prism 实现称为 ShineOn。
    • +1:Prism 确实通过 Cocoa 在 Mac 上完成了 Delphi!
    【解决方案4】:

    在 OSX 上运行本机 Delphi 代码的选项非常有限。您可以使用 Lazarus/Freepascal,但这与 Delphi 相差甚远。它将生成本机代码。

    您也可以使用 Prism 和 Mono。这显然运作良好。看看http://devcenter.remobjects.com/osxhttp://wiki.remobjects.com/。另外,请查看 remobjects 博客和 embarcadero.public.delphiprism.mono.osx 新闻组。

    这需要单声道可再发行版。不过,mono 还支持链接和提前编译,因此您可以在其上获得接近原生代码的内容。

    在任何一种情况下,您都需要重写您的 ui,因为 osx 的外观和约定是不同的。

    【讨论】:

    • 仅在最后一句话上+1。每个认为这个问题主要是编译器和库问题的人都会受到伤害。
    【解决方案5】:

    对此并没有真正好的解决方案。有人提到了 Lazurus,但它还没有“出现”。 Delphi 不是一个跨平台的工具。如果您真的想要 Mac 版本,那么您可能应该寻找替代方案。

    如果您的应用是基于消费者的,那么您的用户会期待很多 Cocoa 的优点。使用其他任何东西来制作 Mac 应用程序会让他们变得暴躁。

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

    【讨论】:

    • -1 表示没有回答问题,并表示 Delphi 不是跨平台的,因为 Prism 存在这样的问题
    • 我确实回答了这个问题。我的回答是“不”。仅仅因为它存在,并不意味着 Delphi Prism 是一个很好的解决方案。
    • 罗伯特:Delphi 是否 = Delphi Prism 取决于你的观点。我个人会说不,因为在很多方面它与经典的 Delphi 代码不兼容。 prismwiki.codegear.com/en/Win32_Delphi_vs._Delphi_Prism
    • 我什至没有考虑过 Delphi.NET。
    【解决方案6】:

    Delphi 和 Mac 的未来可能会有一些希望。

    The Podcast at Delphi.Org 回顾了 CodeRage III(2008 年 12 月)的闭幕主题演讲,当时 Embarcadero 的 Wayne Williams 谈到了未来。它是这样说的:

    我认为韦恩演讲中最令人兴奋的部分是标有“未来”的幻灯片,其中列出了公司范围内正在进行的一些研究计划。它具体列出了 Mac、Linux、Cloud、Application Virtualization、FireBird、Touch、64bit、SMP 和 Multi-core。当我问及适用于 Mac 和 Linux 的 Delphi 时,他们说今天使用 Delphi Prism 和 Mono,您可以使用 Mac 和 Linux,但在他们的实验室中,他们正在致力于原生支持,并且他们已经取得了显着的领先优势。

    【讨论】:

      【解决方案7】:

      另一种选择是开发基于 Web 的应用程序。这避免了“gui 不同”的问题,并让您专注于您的产品。如果您查看一些最新的 AJAX 控件,您可以非常接近完整的桌面应用程序体验,而无需做出太多牺牲。如果您的应用程序需要在本地运行,那么在 Delphi 中开发本地 Web 服务并将其转换为专门针对 OSX 的 Lazarus 似乎是一项更容易且易于管理的任务。

      【讨论】:

        【解决方案8】:

        我们发布了一个使用 Delphi/Free Pascal 创建跨平台应用程序 (Mac OSX) 的新产品。看看http://twinforms.com/

        【讨论】:

          【解决方案9】:

          虽然 Lazarus 路线不是简单的重新编译,但我有很好的经验。我之前尝试过(Delphi).NET+mono 方式(WinCE、Linux 和 OS X),结果惨遭失败。

          Codegear 说了很多,但下一个 Delphi 版本将只有 64 位的 PREVIEW(cmdline 编译器)。如果您假设之后的版本是完整的 64 位产品,那么您可以确定 OS X 最早是 2 年之后。

          Lazarus 或重新编码。

          【讨论】:

            【解决方案10】:

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

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

            【讨论】:

            • 感谢您添加此内容 - 我也一直在关注 Embarcadero 的最新消息。我会更新上面的问题。
            【解决方案11】:
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-08-14
            • 1970-01-01
            • 1970-01-01
            • 2014-09-05
            • 1970-01-01
            • 1970-01-01
            • 2014-01-20
            相关资源
            最近更新 更多