E2563 Specified interface type is not declared (Delphi)

From RAD Studio
Jump to: navigation, search

Go Up to Error and Warning Messages (Delphi)

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.