我仅在将私有(private)方法分配给局部变量后才使用它:
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;
...
procedure TForm1.FormCreate(Sender: TObject);
var
TmpA : TMyTestWithoutParam;
TmpB : TMyTestIntegerParam;
begin
TmpA := Test;
TmpA();
TmpB := Test;
TmpB(1);
end;
procedure TForm1.Test();
begin
//...
end;
procedure TForm1.Test(APar : Integer);
begin
//...
end;
在编译时,它会引发 H2219 警告信息:
[DCC Warning] Unit1.pas(16): H2219 Private symbol 'Test' declared but never used
为什么 H2219 警告发生,这是避免这种情况的正确方法?
最佳答案
我已经使用 Delphi XE7 对其进行了测试,但无法重现该问题。我认为它已在较新的 IDE 版本中得到修复。
在 Delphi 2007 下,可以通过关闭/打开提示来避免警告
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{$HINTS OFF}
procedure Test(); overload;
procedure Test(APar : integer); overload;
{$HINTS ON}
end;
关于delphi - 为什么仅在将重载过程分配给局部变量后才使用重载过程时会出现 'H2219 Private symbol X declared but never used'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50374230/