W1015 FOR-Schleifenvariable '%s' kann nicht als Var-Parameter übergegeben werden (Delphi)
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.