【问题标题】:W1000 Symbol 'THintInfo' is deprecated compiler warning in Delphi XE4W1000 符号 'THintInfo' 是 Delphi XE4 中不推荐使用的编译器警告
【发布时间】:2013-10-17 06:19:12
【问题描述】:

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

procedure MyProcedure(var HintInfo: THintInfo);

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

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

我用谷歌搜索并在http://www.alphaskins.com/forum/index.php?showtopic=5005找到了以下解决方案

{$IFDEF UNICODE}
THintInfo = Controls.THintInfo;
{$ENDIF}

这是正确的还是有任何有效的方法可以做到这一点。

我的uses 中已经添加了Controls 单元。

【问题讨论】:

  • uses 部分从Controls,Forms 更改为Forms, Controls 将是一个肮脏的工作人员。更好地使用 Controls.THintInfo。

标签: delphi delphi-7 delphi-xe4


【解决方案1】:

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

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

Use Vcl.Controls.THintInfo

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

Controls.THintInfo

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 2021-07-02
    • 2015-12-04
    • 2013-09-12
    • 2020-01-31
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多