Delphi Compiler Error
E2563 Specified interface type is not declared
Reason for the Error & Solution
This occurs when you define an interface and in the inheritance you use different type restrictions between the inheritance expression and the methods you implement.
program E2563;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
IMyIntf<T> = interface
procedure IProc(A: T);
end;
TClass = class(TInterfacedObject, IMyIntf<String>) //E2563
procedure IMyIntf<Integer>.IProc; //E2563 ImyIntf<Integer> not defined
// You should use either String or, in the inheritance expression, use class(TInterfacedObject, IMyIntf<Integer>)
end;
begin
end.