| こんにちは、マスターいやはや、私の常識=世間の非常識なのかな?
 
 //-------------------------------------
 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;
 //------------------------------------
 で、しのいだのですが、どうも????
 
 
 
 |