在Delphi中使用“ System.SysUtils”还是“ SysUtils”?

问题描述 投票:0回答:1

在Delphi XE3中,似乎可以使用“ System.SysUtils”或“ SysUtils”,“ Vcl.FileCtrl”或“ FileCtrl”。

我阅读了http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/usingnamespaces_xml.html中的文章,似乎前者被称为完全限定名称空间,而后者是通用名称。但是如果我理解正确的话,应该添加如下语句:

“ Uses System,Vcl”,然后才能使用这些命名空间下的单元。但是我检查了代码,但是找不到任何“ Uses System”或“ Uses vcl”。为什么?

delphi
1个回答
1
投票

您正在阅读旧文档,并且仍然阅读了错误的主题。

在此上下文中,

SystemVcl实际上是Unit Scope Names,与Namespaces相似,但有很多不同。 XE2中引入了单位作用域名称,以允许VCL和FMX在不同的作用域(Vcl.FormsFMX.Forms等)下共享通用的单位名称。迁移到FMX的现有VCL代码(很大程度上)不需要重写,它可以use仅是Forms,依此类推,并且神奇地根据项目类型选择正确的范围。命名空间不能使用相同的功能。您不必在代码的uses语句中明确指定单位作用域名称的原因是,因为它们是在项目级别配置的,并且默认情况下,大多数VCL项目都具有SystemVcl范围名称预先配置。

因此,当您在代码中仅使用useSysUtils等时,编译器将根据项目的单元作用域名称对它们进行检查,并最终找到FileCtrlSystem.SysUtils等。>

© www.soinside.com 2019 - 2024. All rights reserved.