C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[60627] Re:TpageControl 에서, Page 마다 cpp 파일 분할 할 수 있나요?
skjoon [skjoon] 1215 읽음    2010-03-30 13:00
TabContorl.zip 5.7KB 프로젝트소스파일입니다.
(추가)
쓰고 다시보니 PageControl을 원하시는 거였네요..ㅎㅎ
뭐.. 비슷하지 않을까요? ^^;;

---------------------------------------------------
(원래글)

비주얼씨에서 하던대로 하시면 됩니다. ^^;;

10년전에 위자드 폼 만든다고 삽질하던게 생각나네요.

코드 나갑니다. ~
// 헤더파일입니다.
class TForm1 : public TForm
{
__published:	// IDE-managed Components
    TTabControl *TabControl1;
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall TabControl1Change(TObject *Sender);
private:	// User declarations
    TForm* m_pTabForms[3]; // 탭에 해당하는 폼의 포인터를 저장할 배열입니다.
    TForm* m_pCurrTabForm;  // 현재 활성화된 탭(폼)을 가리키는 포인터입니다.
public:		// User declarations
    __fastcall TForm1(TComponent* Owner);
};

// 소스입니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    m_pTabForms[0] = new TForm2(NULL);
    m_pTabForms[0]->Parent = TabControl1;
    m_pTabForms[0]->BorderStyle = bsNone;
    m_pTabForms[0]->Align = alClient;
    m_pTabForms[0]->Show(); // 첫번째 탭에 해당하는 폼을 디폴트로 활성화합니다.

    m_pTabForms[1] = new TForm3(NULL);
    m_pTabForms[1]->Parent = this->TabControl1;
    m_pTabForms[1]->BorderStyle = bsNone;
    m_pTabForms[1]->Align = alClient;

    m_pTabForms[2] = NULL;

    m_pCurrTabForm = m_pTabForms[0]; // 현재 활성화된 폼을 저장하구요.
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    // 종료하면서 동적으로 생성한 폼을 해제합니다.
    for(int i = 0; i < 3; i++) {
        if(m_pTabForms[i]) {
            delete m_pTabForms[i];
            m_pTabForms[i] = NULL;
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TabControl1Change(TObject *Sender)
{
    // 탭이 바뀔때 현재 활성화된 폼을 닫고 탭에 해당하는 폼을 보여줍니다.
    Index = ((TTabControl*)Sender)->TabIndex;

    if(m_pCurrTabForm) {
        m_pCurrTabForm->Close();
        m_pCurrTabForm = NULL;
    }

    if(m_pTabForms[Index]) {
        m_pTabForms[Index]->Show();
        m_pCurrTabForm = m_pTabForms[Index]; // 현재 활성화된 폼을 저장합니다.
    }
}

// Form2, Form3을 Project-Option-Application에서 Auto-Create Form 목록에서 빼줘야겠죠. :->
//---------------------------------------------------------------------------


도움이 되셨길 빕니다.

ben 님이 쓰신 글 :
: 안녕하세요? 가입하고 처음으로 글을 쓰게 되었습니다.
: C++ 완전정복에서도 많은 도움 얻고 있습니다.
: MFC쪽만 하다가 C++빌더 쪽으로 넘어온지 얼마 안되었습니다.
: 생소한 것도 많지만, 하나하나 알아가는 중입니다.
:
: 이제 어느정도 적응이 되어서 Form SDI 환경에서 MiniProject 를 진행중입니다.
: MFC 에서 사용하던 버릇때문인지..
:
: TpageControl 에서 각 Page 마다 CPP를 분리해서 사용하고 싶습니다.
: 불가능은 없을 것 같은데, 어떻게 해야할지 모르겠군요.
:
: 폼에 TpageControl 을 붙이는 순간 종속적이니.. ㅎㅎ;;;
: MFC에서는 다이얼로그를 따로 만들어서 판에 붙이는 방식으로 했었는데...
:
: 궁금합니다.
:
: 답변주시면 감사하겠습니다.
: TpageControl 로 검색해서 찾아보니, 이런 질문은 없는듯해서;; 과감히 올립니다. 큭;;

+ -

관련 글 리스트
60625 TpageControl 에서, Page 마다 cpp 파일 분할 할 수 있나요? ben 1051 2010/03/30
60627     Re:TpageControl 에서, Page 마다 cpp 파일 분할 할 수 있나요? skjoon 1215 2010/03/30
60630         Re:Re:TpageControl 에서, Page 마다 cpp 파일 분할 할 수 있나요? ben 1194 2010/03/30
60626     Re:TpageControl 에서, Page 마다 cpp 파일 분할 할 수 있나요? Lyn 1080 2010/03/30
60629         Re:Re:TpageControl 에서, Page 마다 cpp 파일 분할 할 수 있나요? ben 1190 2010/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.