【问题标题】:source compatibilty (*.pas & *.dfm) by Delphi versionsDelphi 版本的源兼容性 (*.pas & *.dfm)
【发布时间】:2013-03-12 22:51:41
【问题描述】:

有没有关于不同DELPHI版本之间项目文件、源代码和*.dfm文件兼容性的信息。

如果我不使用 DELPHi XE3 的最新功能,我仍然可以打开代码库并使用例如编译。德尔福 2010 年? (我知道 Unicode 问题,或者像 INDY 9 到 INDY 10 这样的组件更改会阻止降级,但这对我来说是另一个话题)

不好的想法不工作:使用您的 Delphi 7 项目,使用 DELPHI 2010 打开和编译,您不能使用 DELPHi 7 重新打开项目,因为某些对象将在使用 2010 打开项目时具有扩展属性。在这种情况下,手动返工回到 DELPHi 7 样式是比较费时间。

开发团队可以一起工作吗,成员是否使用不同的 DELPHI XX 版本?

【问题讨论】:

  • 不容易(如果有的话)。您可以通过不共享项目 (.dproj) 文件来处理部分问题,但是由于添加了属性和更改了类型,您无法对 .dfm 中存储的内容做很多事情。绝对没有办法同时使用相同的 .dfms 和 .pas 文件在 D7 和 D2010 中工作 - 差异太多了。如果你尝试,你会很头疼——如果你打算尝试,我会购买像 Wyeth-Ayerst(Advil 的制造商)这样的公司的股票。 :-)
  • 团队必须使用相同的 Delphi 版本。当然,我保留了 jvcl 等组件库的可移植性并使用 dfm clean 工具。但企业应用程序一次只有 1 个版本
  • XE2 和 X3 代码兼容,除了 FM2 与 FM 等新功能?任何信息链接?
  • 您可以使用Andy Hausladen's DFMCheck 来帮助解决 DFM 中的冲突属性。
  • DFMCheck 只检查组件而不是它们的属性。

标签: delphi delphi-xe2 delphi-7


【解决方案1】:

可以做你想做的事,但我无法想象你为什么想做。当我们将应用程序从 D6 移植到 D2010 时,我们共享了可以在两个版本中构建的源代码。

这纯粹是一种过渡安排。一旦我们对 D2010 端口有信心,我们就切断了脐带。在这一点上,我们欣然接受了 D2010 的新功能。

为了完成这项工作,我们使用了以下拐杖:

  1. 帮助函数减轻 ANSI/Unicode 差异。
  2. 处理单元重命名的单元别名。例如,主题单元将名称从 D6 更改为 D2010,单元别名功能隐藏了这一点。
  3. 大量的条件代码。

所有这些都是必需的,因为我们有一个移植任务,因此必须在两个版本中进行编译。旧版本用于我们现有的产品维护,新版本以便我们可以测试和开发端口。

但我认为你没有理由这样做。尤其是因为它会导致非常复杂的代码。如果您希望您的应用程序在 D7 中构建,那么请始终在 D7 中构建它。既然你不能使用现代 Delphi 的特性并保持与 D7 的兼容性,为什么要使用 D7 以外的任何东西呢?当您购买现代 Delphi 时,您还可以访问旧版 Delphi。

【讨论】:

  • 是的,遗憾的是,Delphi 要求开发人员代码从一个版本移植到另一个版本。
  • @user539484 只是真正的 ANSI -> Unicode 是一个端口。
  • 那么这是一个幸运的案例 :) 无论如何,过渡 up 得到了销售部门的支持、记录和赞赏,但 Franz 想要双向,其中过渡 down 是造成问题的人,其中很多。
猜你喜欢
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 2013-08-03
  • 2018-08-31
相关资源
最近更新 更多