E2079 Procedure NEW needs constructor (Delphi)
Go Up to Error and Warning Messages (Delphi)
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.