E2178 Dynamische und Botschaftsmethoden sind im OLE-Automatisierungbereich nicht erlaubt (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Sie haben unzulässigerweise eine dynamische Methode oder eine Botschaftsmethode in einen Automatisierungsbereich einer Klassendeklaration gestellt.
program Produce; type Base = class automated procedure DynaMethod; dynamic; procedure MessageMethod(VAR msg : Integer); message 151; end; procedure Base.DynaMethod; begin end; procedure Base.MessageMethod; begin end; begin end.
Es ist nicht möglich, eine Deklaration einer dynamischen Methode oder einer Botschaftsmethode in den OLE-Automatisierungsabschnitt einer Klasse zu stellen. Aus diesem Grunde erzeugen beide Methodendeklarationen in diesem Quelltext einen Fehler.
program Solve; type Base = class procedure DynaMethod; dynamic; procedure MessageMethod(VAR msg : Integer); message 151; end; procedure Base.DynaMethod; begin end; procedure Base.MessageMethod; begin end; begin end.
Dieser Fehler kann auf verschiedene Arten aus Ihrem Programm entfernt werden. Als Erstes könnten Sie alle Deklarationen, die diesen Fehler auslösen, aus dem Automatisierungsabschnitt herausbringen, wie dies in diesem Beispiel geschehen ist. Eine andere Möglichkeit besteht darin, die Attribut dynamic oder message der Methode zu entfernen; dadurch wird natürlich nicht das gewünschte Verhalten der Methode erzielt, aber der Fehler ist behoben.