다시 답변 부탁드립니다.
MDI를 써서 폼을 만들었습니다. main form 과 두개의 child form을요....
그런데 실행을 시키면 child form이 뜨기전에 이런 에러 메시지가 뜹니다..
List index out of bounds(0) 라구요....
왜 이런 메시지가 뜨는지 꼭좀 빨리 알려주세요...
혹시 midchildren 때문인지...제 메인 소스를 띄웁니다...
뭐가 잘못되었는지 자세하게 알려주시면 감사....
procedure TMAINF.psActFormClose;
var
I : ShortInt;
begin
if MDIChildCount > 1 then
begin
for I := MDIChildCount - 1 downto 0 do
MDIChildren[I].Close;
end;
end;
procedure TMAINF.N1Click(Sender: TObject);
begin
psActFormClose;
TForm2.Create(Application);
end;
procedure TMAINF.N2Click(Sender: TObject);
begin
psActFormClose;
TForm3.Create(Application);
end;
List index out of bounds(0)
에러는 리스트형 그러니까 콤보박스 같이 어떤 리스트를 가지는 곳에서 생기는 겁니다.
TStrings 를 쓰는 모든 콤포넌트에서 발생할수 있죠...
이 리스트는 값이 0 - max값을 가지고 값이 정해지지 않은 상태는 -1이 되죠..
만약 이 max값이 넘은 index를 주거나 index가 -1인 값을 리턴하라고 하면
에러가 생기죠..
간단히 말하면 child form을 생성시킬때 아마 form Create 나 form Show에서
어떤 리스트를 콘트롤하는 소스가 있을겁니다. 그부분을 참고해 보세요..
지금 주신 소스에는 그런부분이 없네요...
에러는 아마 차일드 폼에서 생기는 걸겁니다...
디버깅을 하면 금방 알수 있을텐데...
그럼.. 즐거운시간 되세요.
- 하얀까마귀 -
민은홍 wrote:
> 다시 답변 부탁드립니다.
>
> MDI를 써서 폼을 만들었습니다. main form 과 두개의 child form을요....
>
> 그런데 실행을 시키면 child form이 뜨기전에 이런 에러 메시지가 뜹니다..
>
> List index out of bounds(0) 라구요....
>
> 왜 이런 메시지가 뜨는지 꼭좀 빨리 알려주세요...
>
> 혹시 midchildren 때문인지...제 메인 소스를 띄웁니다...
>
> 뭐가 잘못되었는지 자세하게 알려주시면 감사....
>
> procedure TMAINF.psActFormClose;
> var
> I : ShortInt;
>
> begin
> if MDIChildCount > 1 then
> begin
> for I := MDIChildCount - 1 downto 0 do
> MDIChildren[I].Close;
> end;
> end;
>
> procedure TMAINF.N1Click(Sender: TObject);
> begin
> psActFormClose;
> TForm2.Create(Application);
> end;
>
>
> procedure TMAINF.N2Click(Sender: TObject);
> begin
> psActFormClose;
> TForm3.Create(Application);
> end;
>
>
>