4

Delphi 2011 将允许编译可以在 Mac OS 上运行的应用程序。(注:这句话是在 Delphi-XE 预览版出来之前写的,当时大家都在说 ProjectX)。

认为可以“迁移到跨平台”一个 win32 应用程序是否现实?

第三方组件供应商是否会让他们的库跨平台,或者这实际上是不可能的?

我使用以下 3rd 方组件:

devexpress - 用户界面

德瓦特 - DAC

报表生成器 - 用户界面

Steema/TeeChart - 用户界面

我不希望有一个向导可以为我完成这项工作,我只是想更好地了解细节。

4

4 回答 4

4

xplatfrom 框架将(据我们所知)类似于经过修订(并希望得到很大改进)的 CLX,这是 Kylix 中使用的基于 Qt 的库。VCL 是一个非常面向 Windows 的库(它很好),并且依赖于许多 Windows 特定的功能。因此,要使跨平台组件与 VCL 对应物高度兼容,这根本不是一件容易的事——如果不是不可能或有意义的话。非可视控件(即 DAC)比可视控件(即 DevExpress 小部件)要容易得多。第三方供应商是否以及何时推出他们的 xplat Delphi 库还有待观察,很大程度上取决于 Delphi 2011 的成功和推广。将 win32 应用程序迁移到跨平台可能需要很小的更改或很大的更改,这取决于它的编写方式、与 Windows 的关联程度以及使用了哪些库。

于 2010-06-17T11:00:11.530 回答
3

好吧,Delphi 2011 目前处于私人测试阶段,很少有值得信赖的人知道它。

所以直到八月下旬,我想我们不会看到它在行动。但是,我听说新的跨平台应用程序称为 UCL 应用程序,而不是 VCL 应用程序。

无论哪种方式,Delphi 都是传统的 windows 工具,我怀疑当前的应用程序有点依赖于 windows 平台,所以我希望这个过程在转换到跨平台的情况下会很乏味。

当我说 Tied 时,我的意思是调用 Windows 库或函数。

大多数 Delphi 软件使用特定于 windows 的函数,例如ShellExecuteMessageBox、 从 导入的函数advapikernel32,这些函数在其他平台上不可用,因为它们有自己的库。

但我希望这个功能可以在新的跨平台库中使用,以防万一这不是一个巨大的失败。

于 2010-06-17T10:32:07.763 回答
3

Delphi 2011 已经发布,它被称为 Delphi XE。它只支持 32 位 Windows,就像以前的 Delphi 版本一样。64 位、OS X 和 Linux 仍在路线图中。

在 Delphi 真正支持它之前,不可能说跨平台的 Windows 和 OS X 是多么容易。但是我们可以根据已经停产的 Linux 版本的 Delphi 来做一些猜测。

Kylix 引入了一个名为 CLX 的新组件库。CLX 与 VCL 非常相似,但并不完全相同。CLX 适用于 Windows 和 Linux。VCL 仍然包含在仅限 Windows 的应用程序中。将 VCL 应用程序移植到 CLX 并不太困难,至少如果您的所有 3rd 方组件都支持 CLX。最困难的部分是移植您自己的代码中直接调用 Win32 API 的那些部分。

包括我自己在内的一些人所做的就是在 Windows 上使用 VCL,在 Linux 上使用 CLX。这使事情变得更加困难,因为它需要两组表单,一组用于 Windows,另一组用于 Linux。要成功地做到这一点,您必须将尽可能多的非可视代码从表单中分离出来。例如,您将 TActionList 放在由应用程序上的 VCL 和 CLX 版本共享的数据模块上,然后具有单独的 VCL 和 CLX 版本的表单,提供使用操作列表的工具栏等。如果您正在考虑将来支持多个平台,您现在可以通过将尽可能多的代码分成不与表单绑定的单元来做好准备。

由于 Delphi 旨在创建本地应用程序,因此您永远不会像 Java 提供的那样“编译一次,在任何地方运行”。相反,我们将“开发一次编译多个地方”,假设 Embarcadero 遵循他们的路线图。

于 2010-09-02T02:59:29.440 回答
1

DELPHI-XE 不允许您为 MacOS 编译应用程序

看看embarcadero 网站上的 Delphi-XE 特征矩阵。

于 2010-08-31T08:02:47.050 回答