Q&A

  • MDI Child form 에서 다른 Child form 생성후 자신은 free 하는 방법
MDI 폼으로 프로그램 중 난관에 봉착했네요..^^ 고수님들의 조언 부탁드립니다.
예를 들어 부모폼에 버튼이 두개 있고 버튼을 누르면 현재 열린 모든 child를 close,free하고 새로운 차일드폼을 생성합니다.
문제는..
차일드에서 다른 차일드를 생성할 필요가 있습니다.
궁리하던 중 부모폼의 버튼 이벤트를 차일드에서 호출을 하니... Access violation 발생. 되다 안되다....
문제는 버튼 이벤트를 호출하면 자기자신이 close 되면서 재귀할 곳이 없어지면 생기는 문제인 듯 한데요..
이럴때는 어떠한 방법을 써야 하는지 잘 모르겠네요..
새로운 폼을 먼저 생성하고 자기 자신을 죽여야 할까요...
아니면 다른 깔끔한 방법이 있을까요??
조언 부탁드립니다..^^

1  COMMENTS
  • Profile
    장성호 2008.03.01 02:09

    방법1.
    스스로 free되고자 할때는  그냥 Close호출하시구요

    OnClose이벤트에서 Action 을 caFree로 하세요


    [Action caFree의 원리]

    Action이 caFree로 해놓으면
    폼이 Close되면서 PostMessage로 자신한테 종료하라는 메세지를 보냅니다.
    그럼 Close함수 가 return 된후에 자신이 보낸 종료메세지를 받아서 스스로 free하게되죠


    방법2.
    Action:=caFree하지 않고 하는 방법은

    위와같은방식으로  PostMessage로 하면
    그냥 ButtonClick에서 free하도록 메세지 날리고
    그걸 수신하는데서 스스로 free하면 됩니다.

    방법3.
    뭐 타이머 써도 되구요.. (그러기엔 배보다 배꼽이...)


    권장하는 방법은 1번입니다.
    그럼..