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 Attribute dynamic oder message der Methode zu entfernen; dadurch wird natürlich nicht das gewünschte Verhalten der Methode erzielt, aber der Fehler ist behoben.