W1000符号'THintInfo'是Delphi XE4中不推荐使用的编译器警告

时间:2013-10-17 06:19:13

标签: delphi delphi-7 delphi-xe4

在我的Delphi 7代码中,声明了以下过程。

procedure MyProcedure(var HintInfo: THintInfo);

在将其迁移到Delphi XE4时,编译器会抛出以下警告:

W1000 Symbol 'THintInfo' is deprecated: 'Use Vcl.Controls.THintInfo'

我用Google搜索并在http://www.alphaskins.com/forum/index.php?showtopic=5005

找到了以下解决方案
{$IFDEF UNICODE}
THintInfo = Controls.THintInfo;
{$ENDIF}

是对还是有任何有效的方法来做到这一点。

我的Controls已添加uses个单元。

1 个答案:

答案 0 :(得分:3)

发生的事情是该类型的定义已从Forms转移到Controls。 Embarcadero在Forms单元中留下了一个定义,它引用了Controls中的真实定义,并将Forms中的定义标记为已弃用。

编译器警告告诉你该怎么做:

Use Vcl.Controls.THintInfo

现在,由于您要导入Controls而不是Vcl.Controls,利用已定义的单位范围名称,您需要将此符号命名为

Controls.THintInfo

就个人而言,如果Embarcadero将它们移动到Controls时刚刚从Forms中删除了定义,我会更喜欢它。他们不喜欢在升级时破坏编译,但是谁导入Forms而不是Controls?相反,每个人都必须面对弃用警告,而不得不处理它。我相信Embarcadero选择的路径会对用户产生更大的影响,而不仅仅是简单地移动声明。