W1013 Konstante 0 wurde zu NIL konvertiert (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Der Delphi-Compiler erlaubt es nun, die Konstante 0 in Zeigerausdrücken anstelle von nil zu verwenden. Dadurch kann alter Quelltext compiliert werden, der Änderungen in der RTL enthält.


program Produce;

  procedure p0(p : Pointer);
  begin
  end;

begin
  p0(0);
end.

In diesem Beispiel wurde die Prozedur p0 so deklariert, dass sie als Parameter Zeiger erwartet. Allerdings wird die Konstante 0 übergeben. Der Compiler führt die erforderlichen Konvertierungen intern durch und ändert dabei 0 zu nil. Dadurch wird sichergestellt, dass der Quelltext korrekt ausgeführt werden kann.


program Solve;

  procedure p0(p : Pointer);
  begin
  end;

begin
  p0(NIL);
end.

Dieses Problem kann auf zwei Arten gelöst werden. Im obigen Beispiel wurde die Konstante 0 durch nil ersetzt. Alternativ dazu könnte auch die Prozedurdefinition geändert werden, sodass der Parametertyp vom Typ Integer ist.