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
[1682] Re:폼끼리 사용자 정의한 객체를 어떻게 주고 받나요 ?
박지훈.임프 [cbuilder] 3394 읽음    1999-07-29 00:00
: 안녕하세요..
:
: 질문내용은 같은 프로젝트의 폼이 form1,과  form2가 있는데..form1의 헤더파일의 클래스에서 선언된 객체를 form2에서 사용하고 싶습니다.
: 물론 form1 의 헤더파일을 form2에서 인클루드 시키면 다시 객체가 초기화가 되어 이전에 form1에서 사용했던 계산값들이 모두 없어집니다.
:
: 결국 제가 질문하고자 하는 내용은 하나의 동일한 객체를 form1, form2에서 전역객체처럼 사용하고자 합니다..그래서 form1에서 계산된 결과를 form2에서 다시 또다른 계산을 해서 form1에서 출력하고자 하는 방법이 어떻게 하는지 모르는게 제 궁금함입니다.
:
: 그럼 미리 감사드리며 ,, 좋은 하루 되세요...  ^^; 
:
: ---------------------------------------------------



임펠리테리입니다.

빌더는 보기좋은 RAD 툴이기 이전에 C++ 컴파일러임을 상기하세요. 모든 문법은
C++에서 시작하고, RAD를 구현하기 위해 약간 확장되어 있을
뿐입니다.

먼저.. 질문하신 내용중에서 조금 이해가 안되는 부분이 있는데요.

: 물론 form1 의 헤더파일을 form2에서 인클루드 시키면 다시 객체가 초기화가 되어 이전에 form1에서 사용했던 계산값들이 모두 없어집니다.

이런 일은 없습니다. 만약 폼의 헤더에 임의로 새로운 전역 객체를 추가했다면
그럴 수도 있습니다만, 자동으로 생성된 폼 헤더 자체는 폼의 클래스와 그 클래스의
형으로 선언된 포인터 하나만 있을 뿐, 그외의 어떤 객체 생성부분도 없죠.
그러므로 Form1을 Form2에서 인클루드해도 별다른 문제는 없습니다.

그 다음으로, 공유하려고 하는 객체가 폼 클래스의 멤버라면, 그냥 퍼블릭으로
선언하고 다른 폼에서 억세스할 수 있습니다. 만약 폼1의 퍼블릭 멤버로
int MyVar; 라고 선언된 변수가 있다면, 폼2의 바디에서는 폼1의 헤더파일을
인클루드하고, 폼1->MyVar 라는 식으로 억세스할 수 있죠.
만약 폼 클래스의 멤버가 아니라면, 그 객체를 extern으로 선언하고 참조하려는
다른 유닛(폼에서든 혹은 헤더에서든)에서도 extern 이름; 이런식이면 됩니다.
형 이름은 지정해줄 필요가 없구요.

질문의 정확한 내용을 알수가 없어 생각나는대로만 적어봤습니다.
혹 제가 잘못짚었다면 좀더 구체적으로 다시한번 질문을 올려주시기 바랍니다.
작성하시려는 소스의 구체적인 소스 일부를 보여주시면 가장 좋겠구요.

그럼 참고하시길...

+ -

관련 글 리스트
1675 폼끼리 사용자 정의한 객체를 어떻게 주고 받나요 ? 신항식 3158 1999/07/28
1682     Re:폼끼리 사용자 정의한 객체를 어떻게 주고 받나요 ? 박지훈.임프 3394 1999/07/29
1684         아주 훌륭한 답변이 되었네요..^^; 신항식 3226 1999/07/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.