【问题标题】:Lazarus compatible with Delphi 5?Lazarus 与 Delphi 5 兼容吗?
【发布时间】:2023-04-08 13:22:01
【问题描述】:

我们学校在 Windows 上使用 Delphi 5,当然家里也有。但是因为我有 Ubuntu,我不想使用古老的软件或支付数百美元,我将不得不使用 Lazarus(这似乎很不错)。但是它没有相同的编译器,可能也没有相同的库,那么用 Delphi 5 编写的代码可以用 Lazarus 编译吗?它们兼容多少?

【问题讨论】:

  • Delphi 5 已经 15 岁了,所以我想说 FPC 运行时中的几乎所有东西都应该兼容。 Lazarus LCL 做一些不同的事情,所以你可能需要做一些修改,但这取决于你在做什么。
  • 例如有哪些不同之处?喜欢 api 或语言的主要区别?
  • @Kapichu 这里列出的太多了,而且可能不存在详尽的列表。几乎没有任何例外,可以肯定地说,几乎所有的差异都是 Lazarus 可以 做而 Delphi 5 不能 做的事情。甚至一些今天被认为是 Delphi 核心基础的东西在 Delphi 5 中也不存在——一个例子是 StrUtils 单元,它为字符串操作提供了基本的实用功能。
  • @J... 所以我可以(大部分)将 Lazarus 视为 Delphi 的超集?
  • @Kapichu 大多数情况下,是的 - 至少是 Delphi 5 的超集。您在 Delphi 5 中编写的大多数内容都可以无缝或简单地移植到 Lazarus。反之则不然。

标签: delphi compatibility lazarus delphi-5


【解决方案1】:

我相信它应该只是不要忘记在 Lazarus 中使用 Delphi 模式。

在“Project Options -> Compiler Options -> Parsing”中选择“Syntax mode”为“Delphi (-Mdelphi)”

现在,如果您将使用菜单“工具 -> 将 Delphi 项目转换为 Lazarus 项目”自动将 Delphi 项目转换为 Lazarus 项目,Lazarus 应该会自动设置 Delphi 模式。

无论如何,您可能遇到的唯一问题是某些功能可能已移至不同的单元。这主要与 Lazarus 完全兼容的 Delphi 7 有一些功能从一个单元移动到另一个单元有关。因此,阅读一些关于将项目从 Delphi 5 移植到 Delphi 7 的旧文档可能会派上用场。

【讨论】:

  • 我也可以将 Lazarus 项目转换为 Delphi 吗?
  • 不是直接的。 Lazarus 之所以能够将 Delphi 项目转换为 lazarus one,是为了吸引尽可能多的 Delphi 开发人员使用它。由于 Delphi 仍然是最常用的 Objective Pascal 开发工具,因此没有兴趣在 Delphi 中实现这样的功能。所以恐怕你在这方面不走运。不管怎样,我建议您学习以将核心代码与 UI 代码 (VCL) 分开的方式进行编码。为什么?这样做会增加核心代码与 Delphi 和 Lazarus 交叉兼容的机会。这也可以帮助您支持多个平台。
  • 对象帕斯卡不是目标帕斯卡。不过,Free Pascal 两者都支持 :-)
  • @SilverWarior +1 用于在 VCL 代码之间分离 UI 逻辑。
猜你喜欢
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
相关资源
最近更新 更多