E2080 Prozedur DISPOSE benötigt einen Destruktor (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Diese Fehlermeldung wird angezeigt, wenn Sie in der Parameterliste einen Bezeichner an Dispose übergeben, der kein Destruktor ist.
program Produce; type PMyObject = ^TMyObject; TMyObject = object F: Integer; constructor Init; destructor Done; end; constructor TMyObject.Init; begin F := 42; end; destructor TMyObject.Done; begin end; var P: PMyObject; begin New(P, Init); (*...*) Dispose(P, Init); (*<-- Hier die Fehlermeldung*) end.
Dispose wurde versehentlich mit dem Konstruktor anstelle des Destruktors aufgerufen.
program Solve; type PMyObject = ^TMyObject; TMyObject = object F: Integer; constructor Init; destructor Done; end; constructor TMyObject.Init; begin F := 42; end; destructor TMyObject.Done; begin end; var P: PMyObject; begin New(P, Init); Dispose(P, Done); end.
Übergeben Sie entweder den Destruktor oder kein zweites Argument.