소스는 다음과 같습니다.
:
:
:
//정의
IDX_REC_DEF = RECORD
S : STRING;
F : INTEGER;
END;
IDX_TBL_DEF = RECORD
N: INTEGER;
R: ARRAY[0..20] OF IDX_REC_DEF;
END;
S_TBL: IDX_TBL_DEF;
:
:
:
//formcreate의 내용. 참고로 ParamStr(5)는 공백입니다.
PARAM5 := ParamStr(5);
:
:
:
//formshow의 내용
:
:
:
n:=0;
while not Eof do
begin
if (FieldByName('서비스종류code').AsInteger > 31) then Break ;
CB1.Items.Add(FieldByName('서비스종류명').AsString);
DCB1.Items.Add(FieldByName('서비스종류code').AsString);
S_TBL.R[n].S := FieldByName('서비스종류code').AsString;
S_TBL.R[n].F := n;
n := n + 1;
Next;
end;
end;
:
:
:
위와 같이 소스가 되어 있는데요,
formshow의 while문을 거치고 나면 param5가 공백이 아니라, 마지막
서비스종류code의 값이 들어가 있다는 겁니다.
물론 while문을 바로 앞까지는 공백을 유지합니다.
당연히 formcreate에서 초기화 했으니까여..
결단코 다른곳에서 param5변수에 값을 넣는 곳은 없습니다.
미치겠습니다.
도움될만한 말씀들 부탁드립니다.
With문에 들어 있는 Next는
Form의 Next인지
다른 ActiveControl의 Next인지,
아니면, With문에 종속된 Next인지
애매한 경우일 수 있습니다..
흔히들 이것을 Bug라고 하져..
물론, 아시겠지만..