E2185 オーバーライドしたオートメーション仮想メソッド '%s' の dispid が異なります (Delphi)
エラーと警告のメッセージ(Delphi) への移動
派生クラス内でオーバーライドするすべての手続きは,元の仮想 automated 手続き宣言用に宣言された dispid を使用しなければなりません。
program Produce; type Base = class automated procedure Automatic; virtual; dispid 151; end; Derived = class (Base) automated procedure Automatic; override; dispid 152; end; procedure Base.Automatic; begin end; procedure Derived.Automatic; begin end; begin end.
{ Derived 内にある Base.Automatic のオーバーライド宣言(Derived.Automatic)が手続き用に別の dispid を定義しようとしているのが誤りである }
program Solve; type Base = class automated procedure Automatic; virtual; dispid 151; end; Derived = class (Base) automated procedure Automatic; override; end; procedure Base.Automatic; begin end; procedure Derived.Automatic; begin end; begin end.
{ エラーを起こした dispid 節を削除すれば,このプログラムをコンパイルできる }