在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”。为什么?
您正在阅读旧文档,并且仍然阅读了错误的主题。
在此上下文中,System
和Vcl
实际上是Unit Scope Names,与Namespaces相似,但有很多不同。 XE2中引入了单位作用域名称,以允许VCL和FMX在不同的作用域(Vcl.Forms
与FMX.Forms
等)下共享通用的单位名称。迁移到FMX的现有VCL代码(很大程度上)不需要重写,它可以use
仅是Forms
,依此类推,并且神奇地根据项目类型选择正确的范围。命名空间不能使用相同的功能。您不必在代码的uses
语句中明确指定单位作用域名称的原因是,因为它们是在项目级别配置的,并且默认情况下,大多数VCL项目都具有System
和Vcl
范围名称预先配置。
因此,当您在代码中仅使用use
,SysUtils
等时,编译器将根据项目的单元作用域名称对它们进行检查,并最终找到FileCtrl
,System.SysUtils
等。>