|
우시관 님이 쓰신 글 :
: 안녕하세요...
: 항상 이렇게 도움만... ^^;
:
: 너무 초보적인 질문이라 좀...
:
: 1. 폼을 2(frmMain, frmInput)개를 사용하는데
: 전역변수로 X,Y 를 사용한다고 할때....
:
: frmMain에서 정의한 전역변수 X,Y 를 frmInput 에서 입력을 받고 싶은데...
: 에러가 나네요...
: 그래서 똑같이 frmInput에서 전역변수로 선언을 해주고 나니까...
: 에러도 안나고 또 값도 정확히 들어오는 것 같은데...
: 이렇게 사용하는 것이 맞는건지요????
:
: 아님 다른 방법으로 사용해야 되나요....????
전역 변수가 아니라
TfrmMain 클래스의 멤버 변수로 하는 것이 맞습니다.
frmMain.cpp에서는 frmInput.h 헤더파일을 인클루드하시고
frmInput.cpp에서는 frmMain.h 헤더파일을 인클루드하시는 건 아실테죠?
그런후,
TfrmInput 클래스에서 TfrmMain 클래스를 프렌드 클래스(friend class)로 선언하세요.
class TfrmInput {
friend class TfrmMain;
...
}
이렇게 하면 TfrmInput 클래스에서 TfrmMain 클래스의 private 멤버들에 접근할 수 있습니다.
: 2. 또 Project->optionc->Form->Available Form 으로 frmInput 를 옴겨 놓으면...
: 생성시에는 어떻게 해야 하나요...?
하시려는 작업의 성격상 frmInput->Show()로 modaless form으로 띄우는 것보다는
frmInput->ShowModal()로 modal form으로 띄우시는 것이 좋겠네요.
다음은 예외 처리를 고려한 폼 동적 생성 코드입니다.
TfrmInput *frmInput;
try {
try {
frmInput = new TfrmInput(Application);
frmInput->ShowModal();
} catch (Exception&) {
throw;
}
} __finally {
delete frmInput;
}
|