Delphi Error – E2257 Duplicate implements clause for interface ‘%s’

Delphi Compiler Error

E2257 Duplicate implements clause for interface ‘%s’

Reason for the Error & Solution

The compiler has encountered two different property declarations which claim to implement the same interface. An interface may be implemented by only one property.

program Produce;
type
  IMyInterface = interface
  end;

  TMyClass = class(TInterfacedObject, IMyInterface)
    FMyInterface: IMyInterface;
    property MyInterface: IMyInterface read FMyInterface implements IMyInterface;
    property OtherInterface: IMyInterface read FMyInterface implements IMyInterface;
  end;
end.


Both MyInterface and OtherInterface attempt to implement IMyInterface. Only one property may implement the chosen interface.

The only solution in this case is to remove one of the offending implements clauses.