Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将作用域名称自动添加到delphi库单元?_Delphi_Gexperts - Fatal编程技术网

如何将作用域名称自动添加到delphi库单元?

如何将作用域名称自动添加到delphi库单元?,delphi,gexperts,Delphi,Gexperts,我有一个Delphi6源代码,我正在将它迁移到Delphi10.2 在Delphi6中,Delphi库单元名称(在uses子句中声明),没有像Delphi10.2那样的单元范围名称。因此,我需要添加单元作用域名称 例如: // In Delphi 6 uses Windows, SysUtils, Dialogs; // In Delphi 10.2 uses Winapi.Windows, System.SysUtils, Vcl.Dialogs; 如何为所有项目源文件自动添加单元范围名称

我有一个Delphi6源代码,我正在将它迁移到Delphi10.2

在Delphi6中,Delphi库单元名称(在uses子句中声明),没有像Delphi10.2那样的单元范围名称。因此,我需要添加单元作用域名称

例如:

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

// In Delphi 10.2
uses Winapi.Windows, System.SysUtils, Vcl.Dialogs;
如何为所有项目源文件自动添加单元范围名称

我尝试了GExperts->Uses子句管理器函数,它运行良好,但只对一个文件有效

使用子句管理器“>


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

您可以在菜单“项目->选项”下按每个项目添加范围,选择“Delphi编译器”,然后选择“单位范围名称”“在右侧窗格中。

为什么不在项目选项中指定单元范围名称,至少现在是这样?这种迁移是复杂的,你最好先把注意力集中在物质上。在结尾处处理单元作用域名称。@DavidHeffernan尽管我在项目选项中指定了单元作用域名称,但在打开源文件(由Delphi 6创建)时,单元作用域名称仍然不会自动添加。看起来此设置仅适用于在Delphi 10.2上创建的源文件。项目中的单位范围名称不是这样工作的。再次阅读文档。@DavidHeffernan您是对的,可以在项目选项中指定单位作用域名称,尽管编译时间比在源代码中指定单位作用域名称慢。编译时间取决于代码。这并没有影响到我。在任何情况下,对于migation项目,如果在迁移时将更改保持在最低限度,则会更简单。一旦您满意,然后考虑使用源代码范围的更改来添加单位范围名称。您的解决方案与DavidHeffernan相同。谢谢你给我一个意见。由于德尔福6存储的项目已经改变。.dpr文件并不是唯一的,它附带了一个.dproj文件,其中包含许多附加信息,包括单元范围。但是,“升级”一个.dpr-only项目会创建一个空的dproj,而不包含VCL项目的任何默认单位范围。因此,您需要手动为每个项目列出VCL目标的默认单位范围列表,或者创建一个空VCL项目,并逐个添加所有表单/单位。谢谢您的支持。我在Delphi10.2IDE中打开了一个Delphi6项目,创建了*.dproj。该文件有一个节点=[Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi]。这意味着添加了单元范围名称。所以我认为这和David Heffernan的解决方案没有什么不同。因此,除了认为默认的单位范围集因项目而异之外,我没有其他建议。因此,在将项目从Delphi 6升级到XE 10.2+时,可能需要完成自动填充默认值。无论如何,这需要在每个项目的基础上加以解决。