W1015 FOR-Schleifenvariable '%s' kann nicht als Var-Parameter übergegeben werden (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Sie haben versucht, die Steuervariable einer for-Schleife an eine Prozedur oder Funktion zu übergeben, die einen var-Parameter erwartet. Dies ist eine Warnung, weil die Variable in der Routine geändert werden kann und dadurch die Semantik der for-Schleife verändert wird.


program Produce;

  procedure p1(var x : Integer);
  begin
  end;

  procedure p0;
    var
      i : Integer;
  begin
    for i := 0 to 1000 do
      p1(i);
  end;

begin
end.

In diesem Beispiel wird der Schleifenzähler i an eine Prozedur übergeben, die einen var-Parameter erwartet. Dies ist die Hauptursache der Warnung.


program Solve;
  procedure p1(x : Integer);
  begin
  end;

  procedure p0;
    var
      i : Integer;
  begin
    i := 0;
    while i <= 1000 do
      p1(i);
  end;


begin
end.

Die einfachste Lösung des Problems besteht darin, das Argument als by-value-Parameter zu deklarieren. Sie müssen dann aber sicherstellen, dass sich diese Änderung nicht auf andere Abschnitte des Quelltextes auswirkt. Es ist daher vorzuziehen, wie im obigen Programm die for- durch eine entsprechende while-Schleife zu ersetzen.