こんにちは、マスター
いやはや、私の常識=世間の非常識なのかな?
//-------------------------------------
var
i :Integer;
begin
for i := 0 to Length(arrData) - 1 do
begin
if arrData[i].FXXX = XXX then
begin
・・・
//-------------------------------------
これって、普通ですよね。
カウンター変数をカウンター内で使うって事は別段
いかん事ではなかったと解釈しとります。
ところで
Type TarrData = array[1..31] of TXxxxx;
てのがあったとして下記の関数内手続きが存在する場合
//-------------------------------------
procedure XXXXXXXXX(arrData :TarrData);
var
i :Integer;
begin
for i := 1 to 31 do
begin
if arrData[i].FFLG then
begin
arrrData[i].FXXX := XXXX;
・・・
//-------------------------------------
て、すると iが31→1へとカウンター内で変化している。
たとえばarrrData[15].FFLG := True で他のarrData[X].FFLG := False
だった場合、i = 17 でTrueと判定する。(15番目だから?)
でも、判定文以外はi = 17で同様に見ているもんだから、当然正しい
結果は返さない。
この関数内手続きが呼ばれる前に関数内でバグってておかしくなってる
のか? でも、そんな事あるのかな?
取り急ぎ、
//-------------------------------------
procedure XXXXXXXXX(arrData :TarrData);
var
i,intIndex :Integer;
begin
intIndex := 1;
for i := 1 to 31 do
begin
if arrData[intIndex].FFLG then
begin
arrrData[intIndex].FXXX := XXXX;
intIndex := intIndex + 1;
//------------------------------------
で、しのいだのですが、どうも????
|