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
[9380] Re:form이두개인 프로그램을 만들었는데요 두개의 폼이 통신을할려면 어떻게 해야하나요?
수야 [sooya23] 997 읽음    2001-07-27 11:13
안녕하세요.

수야랍니다.

메인폼에서 폼2를 생성하는것까진 좋습니다.

하지만 ShowModal()로 생성하였을경우 MainForm에 접근하려면 아마도 에러가 날거같다는 느낌이군요

그렇다고 Show()로 바꾸신다해도 아래 delete Form2; 라는 문장때문에 아무런 소용이 없을꺼구요

Form1의 해더를 include하신것까지는 좋은데

TMainForm *Main;이라고 해주셨다고 하셨는데 Form1의 해더를 include 하는것은

TForm1 *Form;이 되어있는 상황이구요 따로 정의하셔서 사용하실 필요는 없습니다.

말이 이상할 수도 있으니 요약해드리겠습니다.

폼 생성시 ShowModal은 해당 Application에서 ShowModal시킨 폼을 최상위에서 다른 폼은 Active가 되지 않습니다.

delete Form2; 이란것이 단순히 폼을 종료시키는 것이라면 Form1이나 Form2의 OnClose이벤트에
Action = caFree; 라고 해주시던지 Form1(즉, 폼2를 생성시킨 어미)의 OnClose이벤트에서 delete를 해주시는편이 좋겠습니다. (단, ShowModal()로 띄운폼이라면 바로 아래 적어주시는게 맞구요)

Form1의 해더를 보시면 TForm1 *Form1; 이라고 되어있을겁니다. 이름을 바꾸셨다면 다꾼이름으로요..
해당 해더를 include 하신후 그냥 그대로 사용하시면 되구요 방법은 이렇습니다.
Form1->Edit1->Text = " 요로케 하눈거라니까눈 "; 뭐 이런식입니다.

참고하세요

윤성민 님이 쓰신 글 :
: Main form에서 Form2을 생성하고요
:
: Form2 = new TForm2(Application);
:
: Form2->RichEdit1->Text = "wow";
:     Form2->ShowModal();
:
:
: delete Form2;
:
: 이런식으로 생성한 후에요
:
: Form2가 모달로 생성된후에 Main form에 마음대로 접근할려고 하거든요
: 그래서 Main form의 헤더 파일을 include하고
:
: TFormMain *Main; 이렇게 선언하고 접근해 보았는데요
: 에러가 나거든요 당연하게도요
:
: 그래서 부모(new를 해준)의 포인터를 가져오게 하는 함수없나요? ㅠㅠ

+ -

관련 글 리스트
9379 form이두개인 프로그램을 만들었는데요 두개의 폼이 통신을할려면 어떻게 해야하나요? 윤성민 1115 2001/07/27
9380     Re:form이두개인 프로그램을 만들었는데요 두개의 폼이 통신을할려면 어떻게 해야하나요? 수야 997 2001/07/27
9384         Re:Re: 그냥 관련 질문인데요... Jun 890 2001/07/27
9385             Re:Re:Re: 그냥 관련 질문인데요... 수야 920 2001/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.