Delphi 2011将允许编译也将在Mac OS上运行的应用程序。 (注意:在Delphi-XE预览出来之前我写了这句话,当时大家都在谈论ProjectX)。
认为可以“迁移到跨平台”win32应用程序是否现实?
第三方组件供应商是否会使他们的库跨平台,或者这实际上是不可能的?
我使用以下第三方组件:
devexpress - UI
devart - DAC
Reportbuilder - 用户界面
Steema / TeeChart - UI
我不希望有一个能为我完成工作的向导,我只想更好地了解细节。
答案 0 :(得分:4)
xplatfrom框架将(据我们所知)修改(并且希望大大改进)CLX,这是Kylix中使用的基于Qt的库。 VCL是一个强大的面向Windows的库(它很好),并依赖于许多Windows特定的功能。因此,使跨平台组件与VCL对应设备高度兼容并不容易 - 如果不是不可能或有意义的话。 非视觉控制(即DAC)比视觉控制(即DevExpress小部件)容易得多。如果第三方供应商推出他们的xplat Delphi库,那还有待观察,很大程度上取决于Delphi 2011的成功与推广。 将win32应用程序迁移为跨平台可能需要很少的更改或大的更改,具体取决于它的编写方式,与Windows的关联程度以及使用的库。对于任何中等复杂的应用程序,恕我直言,这将不是一个简单的迁移。
答案 1 :(得分:3)
嗯,Delphi 2011此时正处于私人测试阶段,很少有人信任它。
所以直到8月底,我想我们不会看到它在行动。但是,我听说新的跨平台应用程序称为UCL应用程序,而不是VCL应用程序。
无论采用哪种方式,Delphi传统上都是Windows工具,我怀疑当前的应用程序与Windows平台有关,所以我希望在转换到跨平台的过程中这个过程很乏味。
当我说Tied时,我的意思是调用Windows库或函数。
大多数Delphi软件使用特定于Windows的功能,例如ShellExecute
,MessageBox
,从advapi
,kernel32
导入的功能等,这些功能在其他功能上不可用平台,因为他们有自己的库。
但我希望这个功能可以在新的跨平台库中使用,万一它不是一个巨大的失败imo。
答案 2 :(得分:3)
Delphi 2011已经推出,它被称为Delphi XE。它只支持32位Windows,就像之前版本的Delphi一样。 64位,OS X和Linux仍保留在roadmap。
在Delphi实际支持它之前,不可能说跨平台的Windows和OS X是多么容易。但我们可以根据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遵循他们的路线图。
答案 3 :(得分:1)
DELPHI-XE不允许您编译MacOS的应用程序
查看embarcadero site上的Delphi-XE功能矩阵。