안녕하세요...초봅니당~!
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의 에디트에 집어