E2076 Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Sie haben eine normale Methode nur durch Angabe des Klassentyps, nicht aber der Instanz aufgerufen.

Dies ist nur bei Klassenmethoden und Konstruktoren, nicht aber bei normalen Methoden und Destruktoren zulässig.


program Produce;

type
  TMyClass = class
  (*...*)
  end;
var
  MyClass : TMyClass;

begin
  MyClass := TMyClass.Create;  (*OK, Konstruktor*)
  Writeln(TMyClass.ClassName); (*OK, Klassenmethode*)
  TMyClass.Destroy;            (*<-- Hier die Fehlermeldung*)
end.

In diesem Beispiel wird versucht, den Typ TMyClass freizugeben. Dies ist nicht sinnvoll und somit unzulässig.


program Solve;
type
  TMyClass = class
  (*...*)
  end;
var
  MyClass : TMyClass;

begin
  MyClass := TMyClass.Create;  (*OK, Konstruktor*)
  Writeln(TMyClass.ClassName); (*OK, Klassenmethode*)
  MyClass.Destroy;             (*OK, für Instanz aufgerufen*)
end.

Wie Sie sehen, sollte eigentlich die Instanz und nicht der Typ selbst freigeben werden.