请解释包裹使用

时间:2012-01-08 05:20:43

标签: delphi migration package delphi-7 delphi-xe2

请解释包裹使用(用简短的句子(傻瓜))。

我刚从D7搬到了XE2,包裹看起来更加出色,我似乎需要更多的东西。

在D7中,我会说uses windows,现在我必须说uses winapi.windows

我发现当我致电MessageDlg()时,我无法传递mtError,我需要对其进行限定。

在我走错路之前 - 简单的解决方案是什么?

我可以以某种方式继续使用我的旧代码与我怀疑是终端的包名(即,对于包A.B.C我有uses C子句。

我可以在某处添加一个语句来执行此操作吗?或者配置项目。

抱歉听起来很笨: - (

2 个答案:

答案 0 :(得分:5)

XE2中的包使用与早期版本没有区别。不同的是Embarcadero的所有单位名称现在都以新的单位范围名称(“系统”,“Vcl”,“Winapi”等)作为前缀,以帮助指定哪些单位属于RTL,VCL,FireMonkey,特定平台等等。

如果您愿意,可以 更新您的代码以完全限定所有内容,但必须。您可以改为在项目选项的“单位范围名称”设置中指定特定范围名称,然后不需要代码更改(除了从一个版本迁移到另一个版本时的常规更改)。

答案 1 :(得分:3)

这些被称为unit scopes。由于新的FireMonkey库和跨平台支持,因此需要声明您所引用的单元类型和函数声明。

您可以使用Project->Options->Compiler->Unit Scope Names设置默认值。这也是documented