当我使用Delphi 2006的时候,它是:
uses System, SysUtils, StrUtils, Windows, Dialogs, WinApi;
但最近我们可以使用:
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics;
这个更改是如何工作的?是将System.pas
分隔成System.*.pas
,还是创建了一个新的子句来根据单个库中的类型分隔函数?
,我如何修改我的旧库,使其像这样工作呢?,我想做一些事情,比如: MyLib.Logic,MyLib.Arrays,MyLib.NetWork等等。
发布于 2013-04-04 12:59:15
您所遇到的就是所谓的单元作用域名称。对不同的RTL和VCL单元名称进行了更改,以更好地区分哪些单元是特定于平台的,哪些是跨平台的。不仅仅是使用名称空间的单元名称(自从Delphi.NET引入以来就已经存在了),而且现在甚至连单元文件名本身现在也是名称空间,这是新的。
如果您不编写跨平台代码,则鼓励您使用新语法:
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics
但是,如果您想编写跨平台代码,或者只需要维护遗留代码,那么继续使用原始语法:
uses
System, SysUtils, StrUtils, ...;
然后确保"Winapi“、"System”、"Vcl“、"Fmx”等前缀包含在Project的"Unit作用域名称“字段中。
发布于 2013-04-04 12:20:43
只需在ide中打开旧文件,并在项目经理重命名该单元。它将自动更改文件中的单元名称。
之后,打开并重新编译旧项目,以确保引用正确的单元名称。
这些点相对于下划线的唯一优点似乎是,您可以在代码完成过程中获得匹配的“子库”列表。
任何点之前的部分不应该被称为“名称空间”,因为它的工作方式与名称空间不同。
发布于 2013-04-04 11:40:42
他们被称为namespaces
,从Delphi7前后就一直存在,那时他们正准备发布Delphi8(Delphifor.NET)。它们被添加到支持事物的.NET方面。他们被记录在在Delphi中使用命名空间中。
https://stackoverflow.com/questions/15820144
复制相似问题