E2185 Überschriebene automatisierte virtuelle Methode '%s' kann kein dispid definieren (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Die während der Deklaration der ursprünglichen virtuellen automated-Prozedur deklarierte dispid-Anweisung muss von allen überschreibenden Prozeduren in den abgeleiteten Klassen benutzt werden.
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.
Die überschreibende Deklaration von Base.Automatic in Derived (Derived.Automatic) versucht unzulässigerweise, einen anderen Dispid für die Prozedur zu definieren.
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.
Die Compilierung des Programms wird durchgeführt, wenn die betreffende dispid-Anweisung entfernt wird.