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
[9277] Re:[질문] 컴포넌트 만들 때 여러개 선택은 어떻게....
kark .김성진 [] 891 읽음    2001-07-24 13:19
질문이 뭔지 정확하게 모르겠네요..
언리쉬드에 있는 일반론적인 것만 일단 말씀드릴께요.
궁금한게 있으면 다시 질문 부탁합니다.

__property 를 사용하는 목적은요 4가지인데요.

1. Object inspector를 통해, 프로그래머에게 객체의 일부분만 노출 시키기 위해..
2. 객체의 인터페이스를 엄격하게 정의하고 정확하게 생성해 주는 수단을 제공..
3. private 부분을 보호하기 쉽게 해준다.
4. Object Instpector에서도 볼수 있고(엄청난 기능이죠..^^) 자동으로 디스크로부터
  읽거나 쓸수 있는, RTTI(Run Time Type Information : 특정 변수의 유형을 테스트하고
  정확하게 대응해 주는것)를 지원한다.

이렇게 나와있는데요, 결국은 객체 생성시에 public 속성을 주고 싶은데,
BCB가 비쥬얼 환경이다 보니까, 어떻게 드러내 줄까 하는 부분을 해결하기 위해
나온거랍니다.

: __published에다가
:   __property TStopBit StopBit = {read = FStopBit, write = FStopBit, default=S1};

이렇게 하시면 read 부분은 FStopBit 가 되어서 열거형으로 받을 거구요,
write 부분은 바로 쓰지는 않구요,

private:
  void __fastcall SetStopBit(TStopBit Value);

__published:
  __property TStopBit StopBit = {read = FStopBit, write = SetStopBit, default=S1};

이렇게 하구 구현부에서..

void __fastcall 클래스명::SetStopBit(TStopBit Value)
{
   // 구현부
}

이런 식으로 한답니다.
참고로 __published 는 VCL 클래서에서만 사용되구, 특히 컴포넌트를 향상 시키는데
사용되는 속성이라서여 TComponent에서 파생된 클래스에 한정해서 쓰는게 올바른 용도
랍니다. 결국 C++ 언어에는 영향을 주지 않구 VCL 컴포넌트 생성을 도와준답니다.
영양가 없는 말만 한 것 같네요..

카크였습니다.

이학균 님이 쓰신 글 :
: 볼랜드 C++ 정복이나 바이블을 아무리 뒤져도.. 자세한 얘기는 안나오네요...
:
: 컴포넌트 만들때.. 프로퍼티 속성에서 여러개 중에 하나 고르게 할려면 어떻게 해야 하나요?
:
: enum TStopBit = { S1 = ONEBIT, S1.5= ONE5BIT, S2= TWOBIT };
: 라고 선언하고
: 컴포넌트 protected란에다가 TStopBit FStopBit라고 선언하고
:
: __published에다가
:   __property TStopBit StopBit = {read = FStopBit, write = FStopBit, default=S1};
:
: 이라고 하면은
: 된다고 어디선가 봤는데..... 이해가 안되네요...
: StopBit의 (DWORD)값은 STOPBITS_10, STOPBITS_15, STOPBITS_20인데, 이 값들과 ONEBIT, ONE5BIT, TWOBIT와는
: 어떻게 연계 할 것이며, 이런 대입식을 넣는 곳은 대체 어디란 말입니까?
: 책 어디 찾아봐도 없고... 가르쳐 주세요..
:

+ -

관련 글 리스트
9270 [질문] 컴포넌트 만들 때 여러개 선택은 어떻게.... 이학균 1095 2001/07/24
9277     Re:[질문] 컴포넌트 만들 때 여러개 선택은 어떻게.... kark .김성진 891 2001/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.