|
제대로 하신것 같습니다. 제가 해도 그렇게 할것입니다.
그런데 문제는 작동이 안된다는 것이지요,ㅋ
__fastcall TForm2(TComponent* Owner, int inputValue);
이 부분을
__fastcall TForm2(int inputValue,TComponent* Owner);
두 변수 순서를 바꾸어 보세요.
좀 황당하지만 그렇게 하면 됩띠다... 왜 그런지는 모르지만요.
(빌더6 기준입니다)
(bds2006도 그러네.ㅋ)
빌더초보 님이 쓰신 글 :
: 고수님들 안녕하세요.
:
: 빌더를 접한지 얼마되지 않은 초보입니다.
:
: 폼 생성자의 오버로드 문제 때문에 이렇게 문의를 드립니다.
:
:
: 보통 한 application에서 두개 이상의 폼을 생성하여 show를 시킬 때
: 이렇게 썼었거든요.
:
: 1) File -> New -> Form 해서 새로운 폼을 하나 추가시킴
:
: 2) Project -> Options -> Forms 에서 새로 추가시킨 폼을
: Auto-create forms: 에서 Available forms: 로 이동시킴
:
: 3) 원하는 곳에서 다음 구문을 추가하여 폼 생성함
:
: if( tempForm == NULL ) tempForm = new TtempForm(this);
: tempForm->Show();
:
: 여태까지 이런식으로 새로운 폼을 생성 & Show 를 했습니다.
:
:
:
: 보통 폼의 생성자가
: __fastcall TForm2(TComponent* Owner);
:
: 이렇게 되어있는데
:
:
:
: 저는
: __fastcall TForm2(TComponent* Owner, int inputValue);
:
: 이런 형태를 가진 폼 생성자가 필요합니다.
:
:
: 그래서 다음과 같이 했습니다.
:
: 1) File -> New -> Form 해서 새로운 폼을 하나 추가시킴
:
:
:
: 2) Project -> Options -> Forms 에서 새로 추가시킨 폼(Form2)을
: Auto-create forms: 에서 Available forms: 로 이동시킴
:
:
:
: 3) Unit1.cpp 파일 상단에 다음 구문을 추가함
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: #include "Unit2.h" ---> 새로 추가함.
:
:
:
: 4) Unit2.h 파일에 다음 구문을 추가함
:
: class TForm2 : public TForm
: {
: __published: // IDE-managed Components
: private: // User declarations
: public: // User declarations
: __fastcall TForm2(TComponent* Owner);
: __fastcall TForm2(TComponent* Owner, int inputValue); ---> 새로 추가한 내용
: };
:
:
:
: 5) Unit2.cpp 파일에 다음 구문을 추가함
: __fastcall TForm2::TForm2(TComponent* Owner, int inputValue)
: : TForm(Owner)
: {
: ShowMessage(IntToStr(inputValue);
: }
:
:
:
: 6) Form1 에 Button 콤퍼넌트를 추가시키고 다음과 같은 Click 이벤트를 추가함
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: if( Form2 == NULL ) Form2 = new TForm2(this, 2);
: Form2->Show();
: }
:
:
: 이렇게 해서 컴파일을 시키면 에러없이 컴파일이 완료됩니다.
: 하지만 Form1에 있는 버튼을 누르면
: 다음과 같은 에러창이 뜹니다.
:
:
: [Debugger Exception Notification]
: ------------------------------------------------------------------------
: Project Project1.exe raised exception class EStackOverflow with message
: 'Stack overflow', Process stopped.
: Use Step or Run to continue
: [OK] [Help]
: ------------------------------------------------------------------------
:
:
: 제가 무엇을 잘못했는지...
: 그리고 해결책은 무엇인지 알려주시면 감사하겠습니다.
:
: 고수님들 부탁드립니다.
|