Delphi Compiler Error
E2079 Procedure NEW needs constructor
Reason for the Error & Solution
This error message is issued when an identifier given in the parameter list to New is not a constructor.
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, Done); (*<-- Error message here*) end.
By mistake, we called New with the destructor, not the constructor.
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); end.
Make sure you give the New standard function a constructor, or no additional argument at all.