Delphi 为什么';H2219已声明但从未使用的专用符号X';仅在将重载过程赋给局部变量后才使用重载过程时发生?

Delphi 为什么';H2219已声明但从未使用的专用符号X';仅在将重载过程赋给局部变量后才使用重载过程时发生?,delphi,overloading,compiler-warnings,delphi-2007,Delphi,Overloading,Compiler Warnings,Delphi 2007,我仅在将私有方法分配给局部变量后才使用它: TMyTestWithoutParam = procedure() of object; TMyTestIntegerParam = procedure(APar : integer) of object; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure Test(); overload; proced

我仅在将私有方法分配给局部变量后才使用它:

  TMyTestWithoutParam = procedure() of object;
  TMyTestIntegerParam = procedure(APar : integer) of object;
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure  Test(); overload;
    procedure  Test(APar : integer); overload;
  end;

编译时,它会引发H2219警告消息:

[DCC警告]单元1.pas(16):H2219专用符号“测试”已声明,但 从未使用过

为什么会出现H2219警告?哪种方法是避免警告的正确方法?

我已经使用Delphi XE7对其进行了测试,无法重现该问题。我认为它已在较新的IDE版本中修复

在Delphi2007下,可以通过关闭/打开提示来避免警告

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    {$HINTS OFF}
    procedure  Test(); overload;
    procedure  Test(APar : integer); overload;
    {$HINTS ON}
  end;

这是一个编译器缺陷,已经修复很久了。
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    {$HINTS OFF}
    procedure  Test(); overload;
    procedure  Test(APar : integer); overload;
    {$HINTS ON}
  end;