W1015 for 文の制御変数 '%s' を変数パラメータとして渡すことはできません (Delphi)
エラーと警告のメッセージ(Delphi) への移動
この警告は for ループの制御変数を手続きまたは関数に変数パラメータとして渡したときに表示されます。呼び出された手続きまたは関数が制御変数を変更し,それが原因で for ループが正しく実行されない可能性があります。
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.
{ このコードは制御変数 i を変数パラメータとして手続きに渡す。そのために警告が表示される }
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.
{ この場合にはパラメータ宣言を定数パラメータに変更すれば解決する。制御変数を別の補助変数に代入し,その変数を渡す方法もある。ただし,当初は参照渡しのパラメータとなっていた理由があったかもしれないので,ここでのプログラムの変更がほかのコードに影響を与えないように注意しなければならない。この問題のもう 1 つの解決策は,次のように for ループを同等の while ループに変更すること }