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
[26694] Re:다른폼구성원액세스
다른폼구성원액세스 [] 642 읽음    2003-08-12 07:28
요구르트 님이 쓰신 글 :
: [질문1]
: 특정 폼이 생성되어 있는지 없는지를 알수 있는 방법이 없나요??
:
: 특정 폼이 생성되어 있다면..
: 다른 일을 할 수 없도록 하고 싶거든요..
:
: 즉, if(Form2->Active) ShowMessage("!!");
: 이런것 차럼 폼2가 현재 띄워져 있다면 또 띄우거나 다른 일 못하게 제어할려고요..
:
: Modal말고요..
:
:
: 사실..
: [질문2]
:
: 여러개의 창을 모달을 이용해서 차례차례 띄우면서 정보를 입력받고,,
: 그걸 저장하려고 헀거든요..
: 메인에서 모달로 Form2를 띄워서 정보를 입력받고,,
: [next] 단추를 누르면 Form2을 닫고, 또 모달로 Form3를 띄우고..
: 이렇게 해서 Form4에서 완료를 누르면..Form2, Form3, Form4에서 입력받은 정보를 한꺼번에..
: 저장을 하려고 하거든요.
:
: 이전까지는 모달로만 창을 띄우니깐 Form2 에서 Form3으로 넘어갈때 Form2가 지워지지 않길래..
: ShowModal()이 아니라 Show()로 Form3을 뛰우고 Form2를 지우는 식으로 Form4에서 모든 정보를 저장했거든요.(이건 정보가 잘 저장되거든요..)
:
: 근데 Form2 Form3 Form4를 모두 ShowModal()로 띄우는 방법을 여기 게시판에
: 몇번의 질문을 올린끝에 알아내기는 했는데..
:
: 그렇게 하면..
: Form4에서 이전에 Form2에 입력했던 정보를 읽어와서 저장할려고 하니깐 안되데요..??
:
: 왜 그러죠?
: 방법이 없는건가요?
: 아님 제가 잘 못한건가요?
:
:
: 사실 두가지 일을 못하도록 제어하고 싶은데..
: ShowModal로 하니깐 자꾸 막히는게 짜증나서..
: 그냥 [질문1]을 이용해볼려구요..--;
:
: 긴 질문인데..
: 아시는분
: 되도록 성실하고..
: 장황하고,,
: 세세한 설명 + 코드
: 부탁드립니다..^^*

ShowModal로 했을 때 Form4에서 Form2에 입력했던 정보를 읽으려 하는데 안 된다?
Form4의 헤더나 유닛파일 상단에 Form2의 헤더파일을 include 하여야 하구요.
Form4에서 액세스하려는 Form2의 멤버들은 public 또는 published 영역에 있어야 하며
액세스하려는 시점에 Form2가 delete되어 있지 않아야 합니다.

Form2를 delete해야 할 경우 delete한 직후에 Form2=NULL;로 지정해주시고
Form2가 유효한지는 if(Form2)로 검사하면 됩니다.
애플리케이션 시작과 동시에 코딩 없이 Form2가 생성되는 경우가 아니라면 코딩시 Form2=NULL;로 미리 해주어야 합니다.

그리고, 폼이 닫히는 것(Close)과 삭제(delete)되는 것은 다릅니다.
(OnClose 이밴트 핸들러에서 Action=caFree;를 하면 닫힐 때 delete되기는 합니다만...)
폼이 삭제된다는 것은 해당 클래스의 해당 인스턴스가 delete되는 것이므로 그 구성원에 액세스할 수 없습니다. 따라서, 폼이 삭제되었다면 if(Form2->Active)에서와 같이 멤버에 액세스할 수 없습니다.





+ -

관련 글 리스트
26692 이런거 if(Form1->Active) ShowMessage("!!"); 안되요?? 요구르트 567 2003/08/12
26694     Re:다른폼구성원액세스 다른폼구성원액세스 642 2003/08/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.