x1019: for 文の制御変数はローカル変数でなければなりません (Delphi)
エラーと警告のメッセージ(Delphi) への移動
このエラーメッセージは,for 文の制御変数が単純変数でない(たとえば,レコードのコンポーネントになっている)か,for 文が入っている手続きのローカル変数でない場合に表示されます。
下位互換性のために,グローバル変数を制御変数として使用することもできますがコンパイラは警告を表示します。ローカル変数を使った方が効率的なコードを生成できる点に注意してください。
program Produce; var I: Integer; A: array [0..9] of Integer; procedure Init; begin for I := Low(A) to High(a) do (*<-- ここで警告*) A[I] := 0; end; begin Init; end. program Solve; var A: array [0..9] of Integer; procedure Init; var I: Integer; begin for I := Low(A) to High(a) do A[I] := 0; end; begin Init; end.