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
[67787] Re:Re:Caption 관리(?)
happymin [] 1114 읽음    2012-07-20 10:52
답변 감사합니다.

Components[i]->ClassNameIs("TLabel") 등 필요한
control만 체크하고 있습니다...

>Componet에 "Caption"이라는 이름의 프로퍼티가 있는지 없는지 체크
->체크하는 방법을 찾아봐야 되겠네요...

장성호 님이 쓰신 글 :
: Form의 Components 배열에서  루프돌면서 Caption변경하는것은
: 괜찮은 방법중 하나입니다.
:
: 하지만 몇가지 고려할 사항이 있습니다.
:
: [ 고려사항 ]
:
: 1. Component라고 모두 다 Caption이라는 Property가 있는것은 아닙니다.
:  
:     VCL에서는 Socket /  Comport 등과 같이 화면에 보이지 않는것도 모두 TComponent를 상속받아 만들어 지니까요~!
:
:     Caption프로퍼티가 있는 놈은 TControl을 상속받은 모든  Control 입니다.
:
:     단 가시성이 protected로 되어있어서, 상속받은 자식 class에서 public으로 open한 control만 보인는 것이죠
:
:     그러므로..
:     Components[i] 배열에 들어있는 놈이 TContol을 상속받았는지 받지 않았는지 체크를 해야합니다.
:
:
:
: 2. Caption과 Text는 같은 Property 입니다.
:   
:    TEdit나 TMemo 등과 같은 Component에는 Caption이라는 프로퍼티가 없습니다.
:    하지만 TEdit를 TControl로 cast해서 Caption을 변경하면 어떻게 될까요?
:
:
: class TOpenControl : public TControl
: {
: 	public:
: 		__property Caption;
: };
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: 	((TOpenControl *)Edit1)->Caption="Edit의 Text가 바뀜";
: 
:         ((TOpenControl *)Memo1)->Caption="Memo의 Text가 바뀜";
: }
: //---------------------------------------------------------------------------
: 
: 

:   
:    위와같이 Edit1의 Caption을 변경하면 Edit1의 Text가 변경되어 버립니다.
:
:   즉 TEdit나 TMemo같은 Control에는 Text 와 Caption은 이름만 다르지 같은 property입니다.
:  
:   이런 Control인 경우는 예외 처리해야 겠죠??
:
:
: 3.TControl을 상속받지 않았는데 Caption 프로퍼티가 있는 경우

:   기본적으로 Caption프로퍼티는 TControl을 상속받은 Control에 모두 있는데요
:
:   TControl을 상속받지 않은 Component에도 Caption이 있는 경우가 있습니다.
:
:   대표적인 것이 TMenuItem 입니다.
:
:   이런 경우도 고려해야겠죠~!
:
:
:
: ========================================================================
:
: RTTI를 이용해서
:
: Componet에 "Caption"이라는 이름의 프로퍼티가 있는지 없는지 체크하고 변경하는 방법이 있습니다.
: 이런 방법을 쓰는게 좀더 범용적이겠죠
: 문론 TEdit같은 것은 예외 처리해야할 것이구요
:
: 그럼..
:
:
:
:  
: happymin 님이 쓰신 글 :
: : 안녕하세요...
: :
: : Caption을 사용자에 따라 변경해 주려고 하는데
: : 보통 어떤방식을 사용하시는지 궁금해서 여쭈어봅니다.
: :
: : 저는 Code.txt파일에 001,어쩌구저쩌구...
: : 이런식으로  저장하고
: : contorl의 Tag에 해당 번호를 넣고
: : 폼 Show 하기전이나 할때
: : Form의ComponentCount/Components[i]를 이용해
: : Caption을 넣고 있습니다.
: :
: : 감사합니다...(--)(__)

+ -

관련 글 리스트
67784 Caption 관리(?) happymin 1002 2012/07/20
67785     Re:Caption 관리(?) 장성호 1085 2012/07/20
67787         Re:Re:Caption 관리(?) happymin 1114 2012/07/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.