Q&A

  • MDI폼에서 동적생성한 폼의 값 가져오기
안녕하세요...초봅니당~!

form1의 FormStyle 속성을 fsMDIForm 으로 ... Auto-create forms로

form2의 FormStyle 속성을 fsMDICild 로 ... Available forms로

form3의 FormStyle 속성을 fsMDICild 로 ... Available forms로 설정했습니다.

form1의 버튼을 클릭하면 form2를 생성하고

form2의 버튼을 클릭하면 form3를 생성하였습니다.

여기서,

form3의 버튼을 클릭하면 form2의 Edit박스에 텍스트를 넣고 싶습니다.

그런데 Access violation 에러가 납니다.

form2와 form3을 Auto-create forms로 해서 하면 아무런 에러없이 되던데요...

이유를 모르겠습니다.

전에 질문올리신 분이 계셔서 봤는데 답변엔



'우선 auto-create폼은 프로그램이 실행할때 자동으로 생성되는 폼이란것은 아시죠

위 세개의 폼이 모두 auto-create폼에 놓으면 에러가 없다는 것은

form2가 생성되지 않은 상태에서 자원(edit2)에 할당하였기 때문에 에러가 나오는 겁니다.

Acess Violation 에러는 100%로 생성되지 않은 자원에 어떤 값을 할당하였기

때문에 발생하는 에러입니다.

위 문장으로 보아 form2에서 form3를 호출할때 form2를 소멸시키는 루틴이 들어 가 있는것은

아닌지...'



라고 했습니다만....



form2에서 form3 호출할 땐 코딩은 아래와 같이 별거 없거든요.



form2 := Tform2.create(self);

form2.show;



그리고 form3의 에디트 값을 form2의 에디트에 집어
0  COMMENTS