I'm using a private method only after assigning it to a local variable:
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;
On compile, it raises H2219 warning message:
[DCC Warning] Unit1.pas(16): H2219 Private symbol 'Test' declared but never used
Why does H2219 warning occurs and which is the right way for avoid that?
I've tested it using Delphi XE7 and can't reproduce the problem. I think it has been fixed in newer IDE's versions.
Under Delphi 2007, the warning can be avoided by turning off/on the hints
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{$HINTS OFF}
procedure Test(); overload;
procedure Test(APar : integer); overload;
{$HINTS ON}
end;