김창환 님이 쓰신 글 :
:
:
:
:
:
:
:
File->New...->Projects탭을 통해서 자동으로 mdi프로젝트를 만들수는 있겠지만요..
:
그 과정을 통하지 않고 폼을 두 개 만들고, 하나는 main으로 하나는 child로 설정해서 main의
:
단추를 누르면 미리 만들어 둔 자식 폼이 보여지게 하고 싶은데..첨이다보니 쉽지가 않네요.
:
:
자동으로 만들어 주는 그 점에 착안해서 이것 저것 자동으로 만들어진 소프에서 복사하다가
:
붙여 넣고 했는데 왜 그런 것들이 필요한지 모른채 베끼다 보니까 금새 막혀 버리네여..
:
:
제가 새 프로젝트에 복사한 것들은 메인 헤더파일에 아래와 같은 내용을 채워 넣고,
:
:
:
:
아래 내용을 복사 해 넣고...
:
void __fastcall TMainForm::CreateMDIChild(String
: Name)
{
TMDIChild *Child;
:
file://--- create a new MDI child window
: ----
Child = new TMDIChild(Application);
Child->Caption =
: Name;
if (FileExists
: (Name))
Child->Memo1->Lines->LoadFromFile(Name);
}
:
:
:
폼스탈 설정하고...등등 하긴 했는데 뭔가 빠져 있는 것 같습니다.
:
:
자동으로 만들어 주는거 말고 첨부터 수동으로(?) 할려면 어떠한 것들을 코딩해 주어야 하는지 알고
: 싶네요...
:
:
:
저도 자세히는 모르지만 제가 해본대로 알려 드리겠습니다..시범테스트 중이지만 잘 돌아는 갑니다.
Project->Option->Forms선택하시구여..
Auto-create forms에 메인 폼을 놓으시구여..
Available forms에 임의로 만든 테스트폼을 넣어 주시구여..
// 헤더파일부분
//----------------------------------------------------------------------------
#ifndef MainH
#define MainH
//----------------------------------------------------------------------------
#include "TestUnit.h" -- > 요기에 요렇게 선언 해주시구여
// 여기도 이러쿵 저러쿵 많이 선언되져...지가 알아서 만들어 주니 건들지 마시구
#include <vcl\ComCtrls.hpp>
#include <vcl\ExtCtrls.hpp>
#include <vcl\Messages.hpp>
#include <vcl\Buttons.hpp>
#include <vcl\Dialogs.hpp>
//----------------------------------------------------------------------------
class TMainForm : public TForm
{
__published:
// 여기는 이러쿵 저러쿵 많이 있져..
private:
void __fastcall CreateMDIChild(const String Name); -- > 요거 지워 버리구여
public:
virtual __fastcall TMainForm(TComponent *Owner);
};
//----------------------------------------------------------------------------
extern TMainForm *MainForm;
extern TMDIChild *__fastcall MDIChildCreate(void); -- > 요것도 지워 버리구여
//----------------------------------------------------------------------------
#endif
// 소스부분
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TMainForm *MainForm;
TTestForm *TestForm; -- > 요기에 이렇게 선언을 해주세염(전역변수 형식으로)
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent *Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::TestButton1Click(TObject *Sender)
{
TestForm = new TTestForm(Application); --- > 동적으로 불러들이구염..
TestForm->Show();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::TestButton2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
저도 이렇게 해서 미디어플리케이션 지금 테스트 중이지만 아무 무리 없이 잘돌아 가네여..
혹시 다른 고수님들 제 코드에 이상이 잇으면 즉각 알려 주세염..저도 고쳐야 하니깐요..
제가 볼랜드 포럼에 발을 들여 놓은 이래로 처음 답변을 올리네여..
저도 볼랜드 포럼에서 엄청 많이 도움을 받았거든요..근데 제가 답변을 올릴만한 실력이 안되서
조금 안타까웠는데... 그래도 이렇게 도움을 드리게 되서(? 도움이 되셨는지는 모르겠지만)
제가더 감사합니다... 그럼 오늘 하루도 즐프하세염...^^*