|
올려주신 소스상에서 프로그램 시작시 폼을 두개를 띄우실려면...가장 간단하게 바꿀 수 있는 방법이
Project1.cpp 파일을 열어서...
Application->Initialize();
1 - Application->CreateForm(__classid(TToolPalette), &ToolPalette);
2 - Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TForm3), &Form3);
Application->Run();
위와 같이 되어있는 부분을 1 과 2의 순서를 바꿔서
아래와 같이 고친후에 컴파일 하시면 됩니다.
Application->Initialize();
2 - Application->CreateForm(__classid(TMainForm), &MainForm);
1 - Application->CreateForm(__classid(TToolPalette), &ToolPalette);
Application->CreateForm(__classid(TForm3), &Form3);
Application->Run();
맛스타 님이 쓰신 글 :
: 어나~ 이거 땜시 하루 날렸습니다 ㅠㅠ폼2개
:
: 폼 2개 생성법(실행시 같이 뜨는 것)
: 알고있는 것 연습했을 때)
: Applicaiton만들고, 그 다음 폼하나를 더 추가 합니다.
: 이 때 기본적으로 Application으로 만들어진 폼을 Form1, 소스와헤더는 Unit1.cpp/h
: 추가한 폼을 Form2 , 소스와헤더는 Unit2.cpp/h
: Project1.bpr로 저장합니다.
: Unit1.cpp에 Unit2.h를 인클루드 시키고,
: Form1의 OnActivate이벤트핸들러에 Form2->Show();라고 하니 되더군요 됐습니다.
: 하지만 Form2에서 OnActivate이벤트핸들러를 통해 Form1->Show()는 Form2가 안뜹니다.
:
: <<책 코딩 중>>
: (제가 한것)
: 첨에 Application생성->ToolPalette폼, unit1.cpp/h
: 두번째 폼 추가 ->MainForm폼,unit2.cpp/h
: Project1.bpr로 저장.
: 문제는 제가(초보) "가장쉽게배우는 C++볼랜드빌더5"의 프로그램을 코딩하고 있는데
: 5장 멀티미디어 그림편집기 편에서 발생했습니다.
: 책 설명이 상당히 미흡해서 원래소스를 참고 해서 만들었는데요.
: 첫번째폼(ToolPalette)을 애플리케이션으로 만들고 두번째폼을(MainForm) new->Form을 통해 만들었습니다.
: 코딩도 그럭저럭 다해서 Run했는데 두번째 폼이 죽어도 같이 안뜨는 겁니다. 첫번째폼만 뜹니다.
:
: (제가 한게 안 되서 책의 소스를 탐구)
: 책의 소스 첫번째폼을 통해 소스코드로 갔습니다. OnActivate이벤트핸들러가 없더군요.-_-;(연습대로라면있어야정상)
: 두번째 폼에 OnActivate가 있고 거기서 ToolPalette->Show();하는 겁니다.
: >>실험한 결과..(제 나름의 -_-)
: -두번째폼의 OnActivate핸들러가 없어도 첫번째두번째폼이 다 뜹니다 (도대체 여기서 왜 첫번째것을 Show하는지?)
: -첫번째폼은 애플리케이션에서 만든 폼이라 원래 뜬다 그래도 두번째폼은 어디서 불러야 할것 아닙니까??도대체어디 서??(Show를 통해서 부르는거 아닙니까? 전체 소스에 두번째폼을 부르는 Show는 없습니다.)
:
: 결론)
: 결국 두번째 폼이 어디서 어떻게 호출되는지 찾을 길이 없어서 이렇게 글 씁니다.ㅠㅠ
: 초보라 하는데 까지 했는데 답이 안 나와서 답답한 마음에 질문 올립니다.
: 파일 첨부 했는데 관심 있으신 분은 좀 봐주시길 ㅠㅠ
: 읽어 주셔서 감사합니다.~*
|