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.
Ensure that the New standard function has a constructor, otherwise it will not work.
Leave a Reply