|
허걱... 난가...--;;;
이름쓰지 마세요.. 쑥스럽고.. 다른 고수분의 고견을 놓칠수도 있잖아요..
그리고, 이곳은 조선에서 제일가는 C++빌더의 장이자...
고수가 아니더라도 자유롭게 의견을 나누는 곳이잖아요...
지금 급한 약속이 있어서 우선 간략한 답변만 올리겠습니다.
변수를 선언/정의 하실때.. Scope라는게 있슴다.
변수를 만들때.. 이넘을 언제 죽여야 하는지를 미리 생각하고 만들어야 한다는
것과 마찬가지져...
음... 님께서
: void __fastcall TMainForm::CreateMDIChild(String Name)
: {
: TMDIChild *MDIChild;
: MDIChild = new TMDIChild(Application);
: MDIChild->Caption = Name;
: }
이렇게 만드셨다면.. 우선은 TMDIChild* 타입의 변수의 인스턴스를 성공적으로
만드셨을 겁니다.
하지만... TMDIChild가 만든 인스턴스 자체는 메모리상에 있는지 몰라도..
이넘을 가리키고 있던 포인터인 TMDIChild *MDIChild; 요넘은 여기서 생명이 끝짱납니다.
아시겠지만.. 지역변수이기 때문이져..
다시 말하자면.. 화면에 보이는 TMDIChild타입의 창은 보일지라도(메모리에 있으니깐..)
요넘을 다시 활용할려면.. TMDIChild의 인스턴스를 찾아갈 정보(TMDIChild *MDIChild)는
사라진 셈이져.... 메모리를 다~~ 뒤져 볼수도 없고... ㅋㅋㅋ...
FindWindow API함수를 여기다 쓴다는 것도 좀 이상하져..
결론은
TMDIChild *MDIChild; 요넘을 전역변수나 멤버변수로 만들어서
낭중에 활용하시면 되겠습니다. ^^
프로그램은 돌아가기만 하면 된다..ㅋㅋㅋ.. 그럼 즐프하세여.......
시후 님이 쓰신 글 :
: MAIN 폼에서 MDI 폼을 불러오는데, MDI 폼을 2개 만들었습니다. MDIChild1, MDIChild2로여,
: 그리고
:
:
: void __fastcall TMainForm::CreateMDIChild(String Name)
: {
: TMDIChild *MDIChild;
: MDIChild = new TMDIChild(Application);
: MDIChild->Caption = Name;
: }
: //---------------------------------------------------------------------------
: void __fastcall TMainForm::ToolButton1Click(TObject *Sender)
: {
: CreateMDIChild("테스트");
: StatusBar1->Panels->Items[1]->Text = "테스트";
: }
: //---------------------------------------------------------------------------
:
: 이렇게 하면, MDIChild를 잘 불러 옵니다.
: 근데, MDIChild1을 불러 오려면 오떻게 해야 하나요..?
:
:
:
: // 헤더파일부분
: //----------------------------------------------------------------------------
: #ifndef MainH
: #define MainH
: //----------------------------------------------------------------------------
: #include "ChildWin.h"
: #include <vcl\ComCtrls.hpp>
: #include <vcl\ExtCtrls.hpp>
: #include <vcl\Messages.hpp>
: #include <vcl\Buttons.hpp>
: #include <vcl\Dialogs.hpp>
: #include <vcl\StdCtrls.hpp>
: #include <vcl\Menus.hpp>
: #include <vcl\Controls.hpp>
: #include <vcl\Forms.hpp>
: #include <vcl\Graphics.hpp>
: #include <vcl\Classes.hpp>
: #include <vcl\SysUtils.hpp>
: #include <vcl\Windows.hpp>
: #include <vcl\System.hpp>
: #include <ActnList.hpp>
: #include <ImgList.hpp>
: #include <StdActns.hpp>
: #include <ToolWin.hpp>
: //----------------------------------------------------------------------------
: class TMainForm : public TForm
: {
: __published:
: TMainMenu *MainMenu1;
: TActionList *ActionList1;
: TStatusBar *StatusBar1;
: TTimer *Timer1;
: TCoolBar *CoolBar1;
: TToolBar *ToolBar1;
: TToolButton *ToolButton1;
: TToolButton *ToolButton2;
: TToolButton *ToolButton3;
: TToolButton *ToolButton4;
: TToolButton *ToolButton10;
: TToolButton *ToolButton5;
: TMenuItem *N111111;
: TImageList *ImageList1;
: void __fastcall Timer1Timer(TObject *Sender);
: void __fastcall ToolButton1Click(TObject *Sender);
: void __fastcall ToolButton5Click(TObject *Sender);
: private:
: void __fastcall CreateMDIChild(const String Name);
: public:
: virtual __fastcall TMainForm(TComponent *Owner);
: };
: //----------------------------------------------------------------------------
: extern TMainForm *MainForm;
: extern TMDIChild *__fastcall MDIChildCreate(void);
: //----------------------------------------------------------------------------
: #endif
|