E2185 Overriding automated virtual method '%s' cannot specify a dispid (Delphi)
Go Up to Error and Warning Messages (Delphi)
The dispid declared for the original virtual automated procedure declaration must be used by all overriding procedures in derived classes.
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.
The overriding declaration of Base.Automatic, in Derived (Derived.Automatic) erroneously attempts to define another dispid for the procedure.
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.
By removing the offending dispid clause, the program will now compile.