|
void __fastcall TMainForm::CONSOLEClick(TObject *Sender) <===== MainMenu클릭
{
ConsoleForm = new TConsoleForm( MainForm); <====== 클릭한 다른Form Object 발생
ConsoleForm->Visible = TRUE; <======= 폼 발생
}
먼저 복수폼을 작성하셨다는 말을 하시는 걸로 봐서는 정적을 이미 폼은 만드신 경우인듯 합니다.
그렇다면 예시처럼 new를 하실 필요 없이 만들어진 폼은 언제든지 사용하실 수 있습니다.
만약 프로젝트 옵션에 동적폼으로 등록하셨다면 위와 같이 new를 사용해서 할당한 다음 사용하시는게
맞습니다. 질문하신 내용은 생성된 폼을 종료하기 전에는 Main폼을 돌아가지 않겠다는 의미로 생각해도 되겠지요
이런경우 모달(Modal)폼과 모달리스 폼으로 사용할 수 있습니다.
모달 폼은 하시고 싶으신 경우와 같이 모달폼에게 권한이 넘어가서 종료되어야 메인폼에게 권한이 넘어오는 것이고
모달리스는 모달리스 폼을 띄우고 바로 권한이 메인으로 돌아오는 것입니다.
폼을 띄우는 방법이 2가지라는 것이지요 이렇게 사용합니다.
Form->Show(); // 모달리스 폼
Form->ShowModal(); // 모달 폼
아야님의 소스로 해볼까요?
void __fastcall TMainForm::CONSOLEClick(TObject *Sender) // <===== MainMenu클릭
{
ConsoleForm = new TConsoleForm( MainForm); // <====== 클릭한 다른Form Object 발생
if( ConsoleForm->ShowModal() == mrOk) // <======= 보통 모달 Result를 확인합니다.
{
ShowMessage("모달 폼이 mrOk를 리턴하였습니다.");
}
else ShowMessage("모달 폼이 mrCancel를 리턴하였습니다.");
delete ConsoleForm; // <========= 동적으로 할당받았으니 소멸시켜야져
}
Help파일에 보시면 관련 예제코드 및 버튼 등 설명도 있습니다. 참고하시기 바랍니다.
아야 님이 쓰신 글 :
: 안녕하세요 아야입니다....
: 씨빌을 공부하는 왕초보라 여러가지 문제가 발생하네요... m(--;)m 흐....
:
: 다름이아니라..
: 복수Form을 작성해 MainForm에서 다른 Form를 불러들입니다
: 그런데... 닫기[×] 를 하지도 않았는데 Main폼을 클릭하면 어디로 갔는지 찾을수가 없고 사라집니다..
: 다시 MainMenu에서 클릭하면 열립니다....
: 닫기[×] 를 클릭하지 않는한 없어지지않게 할수 없을까요??? 그리고 START 바에 최소화 시켜 필요할때 다시 표시가 되게끔 하고싶은데,,,
: 맘대로 안되요..
: 고수님 부탁합니다....
:
: void __fastcall TMainForm::CONSOLEClick(TObject *Sender) <===== MainMenu클릭
: {
: ConsoleForm = new TConsoleForm( MainForm); <====== 클릭한 다른Form Object 발생
: ConsoleForm->Visible = TRUE; <======= 폼 발생
: }
: `뭘 추가를 해야할것같은데 몰겠습니다 m(--;)m
|