Delphi 2011已经出来了,它被称为Delphi XE。它仅支持32位Windows,就像以前版本的Delphi一样。 64位,OS X和Linux仍然在roadmap上。
在Delphi实际支持它之前,不可能说跨平台的Windows和OS X有多容易。但是我们可以基于Kylix做一些猜测,Kylix是Delphi的不再使用的Linux版本。
Kylix引入了一个名为CLX的新组件库。 CLX与VCL非常相似,但不完全相同。 CLX适用于Windows和Linux。 VCL仍包含在仅限Windows的应用程序中。将VCL应用程序移植到CLX并不困难,至少如果所有第三方组件都支持CLX。最难的部分是直接移植您自己的代码的那些称为Win32 API的部分。
有人做了什么,包括我自己,是在Windows上使用VCL,在Linux上使用CLX。这使事情变得更加困难,因为它需要两套表单,一套用于Windows,另一套用于Linux。要做到这一点,你必须从表单中分离出尽可能多的非可视代码。例如。您将TActionList放置在应用程序上由VCL和CLX版本共享的数据模块上,然后使用单独的VCL和CLX版本的表单提供使用操作列表的工具栏等。如果您将来考虑支持多种平台,现在可以通过将尽可能多的代码分离为尽可能不与表单绑定的单元来进行准备。
由于Delphi旨在创建本机应用程序,因此您永远不会像Java提供的那样“编译一次就运行”。相反,如果Embarcadero遵循他们的路线图,我们将会“开发一次编译许多地方”。
您使用的所有第三方组件仍由其公司维护。大多数已经与Kylix(即旧CLX)兼容。所以我猜想你的应用程序的Mac OS端口是可能的,当这些第三方供应商将完成迁移。 如果您使用其他第三方组件,它可能会更加困难。但你的选择是正确的。在未来,选择开源组件可能是一个好主意,因为过去有些公司离开了德尔福业务,但没有公布源代码。 – 2010-09-02 10:07:33
是的,我很幸运(考虑到选择是在2001年)!我忘了提及ZipForge,并且那个仍然保留。 – LaBracca 2010-09-02 15:20:46