【问题标题】:Delphi compatibility issue德尔福兼容性问题
【发布时间】:2018-03-05 18:47:34
【问题描述】:

Delphi 10 Seattle 和 Delphi 2010 之间似乎存在兼容性问题

我使用 Delphi 10 Seattle 编写了一个学校项目,但我的老师仍然使用 Delphi 2010。当我在 Delphi 2010 中传输并打开源代码时出现错误。

我已经在我的电脑上安装了 2010 以复制错误(下面的屏幕截图)

“找不到文件 Vcl.Forms.dcu”

任何想法如何让它工作,标记/调节发生在 Delphi 2010。

【问题讨论】:

    标签: delphi delphi-2010 delphi-10-seattle


    【解决方案1】:

    Unit scope names 在 Delphi XE2 中添加。 Vcl.Forms 在旧版本的 Delphi 中不存在。相反,它应该只是Forms

    原因是因为 Delphi XE2 中引入了 Firemonkey 框架。 Firemonkey 也带来了区分Vcl.FormsFmx.Forms 的必要性。这同样适用于许多其他单位,例如Graphics。 Delphi 2010 没有 Firemonkey,所以它还没有强制使用这个前缀。

    如果您需要在 Delphi 2010 和 Delphi 10 Seattle 中编译代码,请在 uses 子句(FormsGraphics 等)中仅指定基本单位名称,并确保您的 Delphi 10 Seattle 项目具有在Project > Options > Delphi Compiler > Unit scope names 中设置必要的范围(VclWinapi 等)。默认情况下,新项目应该已经有这个。如果没有,您可以添加Vcl 和您需要的任何其他前缀。这将确保编译器可以找到Vcl.Forms,即使您在代码中仅指定Forms

    【讨论】:

    • NamespacesUnit Scope Names 是相似但不同/不相关的功能。命名空间最初是为 Delphi.NET 引入的,但不再使用,它​​们在 XE2 中被替换为单元范围名称。
    • @Remy 难怪我找不到任何像样的资源。谢谢,更新。
    • @Remy 出于好奇,如果你把这样的 D10 项目降级到 D2010,它会保留这些设置吗?或者如果没有它们,.dproj 文件会被重写吗?
    • 从未尝试降级,但我想更新的设置会丢失
    • 非常感谢!我已删除所有单元范围名称,现在上述错误已清除,但在尝试运行应用程序时出现新错误 - “.exe 引发异常类 EReadError,消息属性缩放 deos 不存在”。该应用程序未运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多