请解释包裹使用(用简短的句子(傻瓜))。
我刚从D7搬到了XE2,包裹看起来更加出色,我似乎需要更多的东西。
在D7中,我会说uses windows
,现在我必须说uses winapi.windows
。
我发现当我致电MessageDlg()
时,我无法传递mtError
,我需要对其进行限定。
在我走错路之前 - 简单的解决方案是什么?
我可以以某种方式继续使用我的旧代码与我怀疑是终端的包名(即,对于包A.B.C我有uses C
子句。
我可以在某处添加一个语句来执行此操作吗?或者配置项目。
抱歉听起来很笨: - (
答案 0 :(得分:5)
XE2中的包使用与早期版本没有区别。不同的是Embarcadero的所有单位名称现在都以新的单位范围名称(“系统”,“Vcl”,“Winapi”等)作为前缀,以帮助指定哪些单位属于RTL,VCL,FireMonkey,特定平台等等。
如果您愿意,可以 更新您的代码以完全限定所有内容,但不必须。您可以改为在项目选项的“单位范围名称”设置中指定特定范围名称,然后不需要代码更改(除了从一个版本迁移到另一个版本时的常规更改)。
答案 1 :(得分:3)
这些被称为unit scopes。由于新的FireMonkey库和跨平台支持,因此需要声明您所引用的单元类型和函数声明。
您可以使用Project->Options->Compiler->Unit Scope Names
设置默认值。这也是documented。