Q&A

  • MDI폼에 관한 질문입니다. 생각대로 안되네요.
우선 질문은

MDI폼에서 차일드폼을 보여주고 차일드폼에서 입력받은 텍스트를 가지고 다른

폼을 불렀습니다. 그 폼이 뜰때 차일드에서 받은 텍스트를 가지고 오는 것은 완성했죠.

하지만 다음 문제는 그렇게 띄운 폼에서 입력받은 텍스트로 데이터를 조회하고 조회된

데이터를 선택하고 나서 확인 버튼을 누르면 받은 데이터를 다시 폼을 띄우게한 차일드

폼의 입력창에 보낼려구 합니다. 하지만 계속 엑세스 바이올런스 에러가 나네요.

이리저리 찾아보니 상호 참조는 안된다고 하던데 그것까진 이해를 했습니다.

하지만 실질적으로 어떻게 해야 되는지 고민되는군요...



우선 MDI폼에서 차일드폼을 보여줄땐 델파이 자료실에 있는 MIS프로젝트의 내용을

참조해서 클래스명으로 차일드폼을 생성하였고 차일드폼에서 다른 윈도우를

띄울땐



폼명 := T폼명.CREATE(APPLICATION);

폼명.SHOWMODAL;

폼명.FREE;



이렇게 했습니다. 값을 넘겨줄땐 MDI폼의 전역 변수에다 담았다가 폼이 뜨면 받아서

텍스트 박스에 뿌려주도록 했고 검색 버튼을 누르면 검색이 되어서 스트링 그리드에

뿌려지고 스트링 그리드를 클릭하면 폼의 텍스트박스에 클릭한 데이터를 뿌려주게 했고

다시 확인 버튼을 누르면 차일드폼에서 띄운 폼이 닫히도록 했습니다.

물론 띄운 폼이 닫히고 나서 바로 띄운 폼에서 검색한 데이터를 차일드폼에 뿌려줬음

좋겠습니다. 혹 이렇게 구현한 분이 계시면 도움 바랍니다.



MDI-FORM + CHILD-FORM + SUB_FORM입니다.



사용된 서브폼의 속성은 NORMAL입니다.

1  COMMENTS
  • Profile
    홍성락 2001.11.20 22:00
    초보자 wrote:

    > 우선 질문은

    > MDI폼에서 차일드폼을 보여주고 차일드폼에서 입력받은 텍스트를 가지고 다른

    > 폼을 불렀습니다. 그 폼이 뜰때 차일드에서 받은 텍스트를 가지고 오는 것은 완성했죠.

    > 하지만 다음 문제는 그렇게 띄운 폼에서 입력받은 텍스트로 데이터를 조회하고 조회된

    > 데이터를 선택하고 나서 확인 버튼을 누르면 받은 데이터를 다시 폼을 띄우게한 차일드

    > 폼의 입력창에 보낼려구 합니다. 하지만 계속 엑세스 바이올런스 에러가 나네요.

    > 이리저리 찾아보니 상호 참조는 안된다고 하던데 그것까진 이해를 했습니다.

    > 하지만 실질적으로 어떻게 해야 되는지 고민되는군요...

    >

    > 우선 MDI폼에서 차일드폼을 보여줄땐 델파이 자료실에 있는 MIS프로젝트의 내용을

    > 참조해서 클래스명으로 차일드폼을 생성하였고 차일드폼에서 다른 윈도우를

    > 띄울땐

    >

    > 폼명 := T폼명.CREATE(APPLICATION);

    > 폼명.SHOWMODAL;

    > 폼명.FREE;

    >

    > 이렇게 했습니다. 값을 넘겨줄땐 MDI폼의 전역 변수에다 담았다가 폼이 뜨면 받아서

    > 텍스트 박스에 뿌려주도록 했고 검색 버튼을 누르면 검색이 되어서 스트링 그리드에

    > 뿌려지고 스트링 그리드를 클릭하면 폼의 텍스트박스에 클릭한 데이터를 뿌려주게 했고

    > 다시 확인 버튼을 누르면 차일드폼에서 띄운 폼이 닫히도록 했습니다.

    > 물론 띄운 폼이 닫히고 나서 바로 띄운 폼에서 검색한 데이터를 차일드폼에 뿌려줬음

    > 좋겠습니다. 혹 이렇게 구현한 분이 계시면 도움 바랍니다.

    >

    > MDI-FORM + CHILD-FORM + SUB_FORM입니다.

    >

    > 사용된 서브폼의 속성은 NORMAL입니다.

    ///////////////////////////////////////////////

    CHILD-FORM이 SUB_FORM를 띄운후 작업완료후 SUB_FORM.FREE를 어디서하는냐가 문제인데요. SUB_FORM응 죽인후 SUB_FORM의 참조는 에러가 납니다.

    SUB_FORM의 변수를 사용후 FREE를 하던지

    아니면 SUB_FORM의 작업완료시(확인버튼) MDI-FORM이나 CHILD-FORM의 전역변수에 값을 넣은후 SUB_FORM을 삭제하시면 될것같습니다.