VCL for Delphi中的命名空间兼容性

Rol*_*son 5 delphi delphi-7 delphi-xe6

如何在Delphi 7到Delphi XE7之间的使用中最好地保持名称空间的兼容性?

Delphi 7使用SysUtils而Delphi XE7使用System.SysUtils.

它使用许多ifdef使代码混乱很多,所以我想尽可能避免使用它.

Jer*_*dge 8

在支持名称空间前缀的Delphi的后续版本中(我相信它是XE2及更高版本),您可以在项目选项中定义名称空间.

Project Options > Delphi Compiler > Unit scope names

然后,您不需要在uses子句中包含这些前缀.

默认情况下,新项目将自动包含大部分内容.但是,如果要升级旧项目(尤其是包),则默认情况下可能不会填充这些项目.我发生过随机Delphi开始无法编译的事件,因为这些单元缺少其名称空间前缀.