|
미혜 님이 쓰신 글 :
: 저의 폼은 3개입니다. DB나 무슨 결과값에 의해 다음 폼이 열리는 것이 아니고,
: 그냥 메인폼의 메뉴에서 사용자가 선택하여 다음폼으로 넘어가는것인데요.
: 우선 제가 해본것은요. 3개의 폼을 모두 뛰우는 것으로 하면
: try
: {
: Application->Initialize();
: Application->CreateForm(__classid(TFrmMain), &FrmMain);
: Application->CreateForm(__classid(TFrmKor), &FrmKor);
: Application->CreateForm(__classid(TFrmEng), &FrmEng);
: Application->Run();
: }
: 이렇게 하면 나중에 버튼 클릭시 Show로만 해도 FrmKor과 FrmEng가 뜨던데요..
: Application->Initialize();
: Application->CreateForm(__classid(TFrmMain), &FrmMain);
: Application->Run();
: 이렇게만 하면 Show()로 안뜨더라구요..
CreateForm으로 폼을 생성하지 않았기 때문에
당연히 Show()도 할 수 없습니다.
CreateForm을 써서 폼을 생성하지 않고,
new와 delete를 사용한 동적할당으로 생성할 수 있습니다.
이렇게 하면 폼을 사용하지 않을 때는 그만큼 메모리가 절약됩니다.
try {
try {
dlgDBConnect = new TdlgDBConnect(Application);
if (dlgDBConnect->ShowModal() != mrOk)
Application->Terminate();
} catch(Exception&) {
throw;
}
} __finally {
delete dlgDBConnect;
}
: 두가지를 여쭤보고 싶네요..
: 1. ShowModal()은 다이알박스의 ok, cancel에 의해서만 쓰이는 함수인가요?
아닙니다. 모든 폼은 ShowModal()을 써서 모덜 폼(modal form)으로 띄울 수 있습니다.
: 저는 Show()의 기능처럼 첨에 OnCreate 해서 from을 뛰우지 않았을때 쓰는 함수인줄 아랐는데요...
:
: 2.3개의 폼으로 만들어진 프로그램의 exe 화일을 실행했을때..
: 처음에 main폼이 띄어 지지 않고, 곧바로 sub폼(FrmKor)이 뜰수있는 방법은 무엇인지요?
: main폼이 띄어 지더라도 사용자는 보이지 않게 main폼이 사라지면서 sub폼이 뜨는 방법요..
:
제가 앞 글에 올린 소스가 바로 그렇게 하는 방법입니다.
:
: 꼭쫌 부탁드려요..
: 너무 초보라.. 금욜까지 완성해야 하는데요.. 제발 부탁드립니다...
:
:
:
|