|
하나로 님이 쓰신 글 :
: 만해 님이 쓰신 글 :
: : 하나로 님이 쓰신 글 :
: : : 빌더로 프로그래밍 하다 막혀서 질문을 드립니다.
: : :
: : : 메인폼에서 Sub폼을 ShowModal로 호출하면
: : :
: : : Sub폼의 FormShow이벤트에서 아래소스와 같이 사용자 아무런 입력도
: : :
: : : 하지 않아도 처리하고 Sub폼을 Close하고 다시 메인폼으로 돌아옵니다.
: : :
: : : 그런데 문제는 실제로 실행해보면 메인폼에서 Sub폼을 호출하는데도
: : :
: : : 화면에는 서브폼이 나타났다가 자동으로 Close되지 않고 처리가 끝나도록
: : :
: : :
: : : 나타나지 않고 있다가 처리가 끝나면 비로서 화면에 나타나서 남아 있고
: : :
: : : 자동으로 Close되지 않습니다.
: : :
: : : 고수님의 조언을 부탁드립니다.
: : :
: : : 그럼.
: : :
: : : 소스
: : :
: : : ...
: : :
: : : SubForm->ShowModal();
: : :
: : : ...
: : :
: : :
: : : void __fastcall TSubForm::FormShow(TObject *Sender)
: : : {
: : :
: : :
: : : Application->ProcessMessages();
: : :
: : : OkBtnClick(Sender);
: : : Application->ProcessMessages();
: : :
: : : Close();
: : : Application->ProcessMessages();
: : :
: : :
: : : }
: : :
: : :
: : :
: :
: : 안녕하세요 만해 입니다.
: :
: : 혹시나 해서 애기 드리는 건데요
: :
: : SubForm의 Form Style이 MdiChild라면
: :
: : OnClose 에서
: :
: : Action = caFree;
: :
: : 이 문장을 추가해주세요
: :
: : 그게 아니면 제가 질문의 요지를 잘못 파악한것 같네요 하하~
: :
: : 그럼 이만~
:
: 답변을 해주셔서 감사합니다.
:
: 그런데 MDI폼이 아니고 SDI거든요.
:
: 그럼...
FormShow 이벤트는 해당 폼이 생성된 후 한 번만 발생합니다.
만약 해당 폼이 동적으로 생성되었다가 Close 된 직후 삭제되는 것이라면 상관 없겠지만
그렇지 않다면 두번째 이후의 ShowModal() 시에는 FormShow 이밴트가 발생하지 않습니다.
그리고 ShowModal()로 띄운 폼은 보통 ModalResult=mrOk; or mrCancel; 등으로 하여 닫습니다.
|