私の問題は、髪を引き裂いて数日後に単純化されました(重要な部分だけを残しました。歴史については私の多くの編集を参照してください)、ここにあります:
showmessage('i='+inttostr(i));
for i in [2..5,8,11..13] do
showmessage('1');
showmessage('i='+inttostr(i));
これは、デルファイをランダムにいじる私のプログラムのユニットに配置されます。非連続のfor-inループ範囲は、他の場所(別のユニット)のプログラムで機能することに注意する必要があると思います。合計で、同じ手順でこのような非連続性が2つfor-in loops
あります。一方をコメントアウトすると、もう一方は正常に機能しますが、両方が同時に動作状態にある場合は、2番目の方だけが機能し、最初の方は次のように動作します。以下で説明します。
最初のメッセージボックスには、初期化されていないため「i =乱数」が含まれていますが、初期化されている必要はありません。「1」が含まれるメッセージボックスは表示されません。表示される2番目のメッセージボックスには「i=14」があります。これは、ループがトリガーされたが何もしなかったことを意味しますか?それはばかげています、そうでなければ、誰かが私を啓発することができれば、私は2つのことを望んでいます:
1)なぜこれが起こっているのですか?
2)それを修正し、将来的に回避する方法は?