|
안녕하세요.
수야랍니다.
메인폼에서 폼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를 해준)의 포인터를 가져오게 하는 함수없나요? ㅠㅠ
|