E2079 Prozedur NEW benötigt einen Konstruktor (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Diese Fehlermeldung wird angezeigt, wenn Sie in der Parameterliste einen Bezeichner an New übergeben, der kein Konstruktor 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, Done);              (*<-- Hier die Fehlermeldung*)
end.

New wurde versehentlich mit dem Destruktor anstelle des Konstruktors 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);
end.

Vergewissern Sie sich, dass Sie der Standardfunktion New nur den Konstruktor oder kein zweites Argument übergeben.