【问题标题】:How to automatically add the scope name to the delphi library unit?如何自动将范围名称添加到delphi库单元?
【发布时间】:2019-03-23 04:22:23
【问题描述】:

我有一个 Delphi 6 源代码,我正在将它迁移到 Delphi 10.2。

在Delphi 6 中,delphi 库单元名称(在uses 子句中声明),没有像Delphi 10.2 那样的单元范围名称。因此,我需要添加单位范围名称。

例子:

// In Delphi 6
uses Windows, SysUtils, Dialogs;

// In Delphi 10.2
uses Winapi.Windows, System.SysUtils, Vcl.Dialogs;

如何为所有项目源文件自动添加单元范围名称?

我尝试了 GExperts -> Uses Clause Manager 功能,效果很好,但只适用于一个文件。

我希望将单元范围名称自动添加到所有项目源文件中。

【问题讨论】:

  • 为什么不在项目选项中指定单位范围名称,至少现在是这样?这种迁移很复杂,你不妨先把注意力集中在物质上。在最后处理单元范围名称。
  • @DavidHeffernan 虽然我在项目选项中指定了单位范围名称,但在打开源文件(由 Delphi 6 创建)时,仍然不会自动添加单位范围名称。看起来此设置仅适用于在 Delphi 10.2 上创建的源文件。
  • 项目中的单元范围名称不能这样工作。再次阅读文档。
  • @DavidHeffernan 你是对的,可以在项目选项中指定单位范围名称,虽然编译时间会比在源代码中指定单位范围名称要慢。
  • 编译时间取决于代码。这不是影响我的事情。无论如何,对于您的迁移项目,如果您在迁移时将更改保持在最低限度,将会更简单。满意后,请考虑应用源代码范围的更改来添加单位范围名称。

标签: delphi gexperts


【解决方案1】:

您可以在菜单 Project->Options 下为每个项目添加范围,在右侧窗格中选择“Delphi Compiler”,然后选择“Unit scope names”。

【讨论】:

  • 你的解决方案和DavidHeffernan一样。谢谢你给我意见。
  • 因为 Delphi 6 项目的存储发生了变化。 .dpr 文件并不孤单,它附带一个 .dproj 文件,其中包含许多附加信息,包括单元范围。但是,“升级”仅 .dpr 的项目会创建一个空的 dproj,而没有任何 VCL 项目的默认单元范围。因此,您需要为每个项目手动放置 VCL 目标的默认单元范围列表,或者创建一个空的 VCL 项目,并一一添加所有表单/单元。
  • 感谢您的支持。我在 Delphi 10.2 IDE 中打开了一个 Delphi 6 项目,创建了 *.dproj。该文件有一个 节点 = [Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi]。这意味着添加了单位范围名称。所以我认为这与大卫赫弗南的解决方案没有什么不同。
  • 好的。因此,除了认为默认的单元范围集因项目而异之外,我没有其他建议。因此,在将项目从 Delphi 6 升级到 XE 10.2+ 时,可能需要完成自动填充的默认设置。无论如何,这需要在每个项目的基础上解决。
猜你喜欢
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多