E2080 La procédure DISPOSE nécessite un destructeur (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Ce message d'erreur est émis lorsqu'un identificateur spécifié dans la liste de paramètres de Dispose n'est pas un destructeur.
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); (*<-- Message d'erreur ici*) end.
Dans cet exemple, nous avons passé le constructeur à Dispose par erreur.
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.
La solution consiste à passer un destructeur à Dispose ou à éliminer le deuxième argument.