E2205 interface 型が必要な場所に,interface 型が指定されていません (Delphi)
エラーと警告のメッセージ(Delphi):インデックス への移動
interface 型が必要な場所に,interface 型が指定されていません。このエラーの主な原因は,interface 型として宣言されていないユーザー定義型が指定されていることです。
program Produce; type Name = string; MyObject = class end; MyInterface = interface(MyObject) end; Base = class(TObject, Name) end; begin end.
{ この例では,Name が interface 型として宣言されていないので,Base 型の宣言はエラーになる。同様に MyInterface も上位インターフェースが正しく宣言されていないのでエラーになる }
program Solve; type BaseInterface = interface end; MyInterface = interface(BaseInterface) end; Base = class(TObject, MyInterface) end; begin end.
{ このエラーの最良の解決策は,ソースコードの意図を明らかにしてコードを見直すことである。クラスでインターフェースを実装しようとするのであれば,最初に明示的に TObject などの基本クラスから派生していなければならない。拡張する場合,1 つのインターフェースだけを上位クラスとして指定できる。
上の例では,インターフェースはほかのインターフェースから正しく派生しており,オブジェクト定義でも基本クラスを正しく指定しているので,インターフェースが指定可能となる }