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
[2801] Re:[질문] Tip 란의 14번에 관해...
박지훈.임프 [cbuilder] 3587 읽음    2000-01-20 00:00
서영재 님이 쓰신 글 :
: -------------14번째의 팁의 내용...----------------------
: 예를 들어서 다음과 같이 버튼들을 동적으로 생성했다고 합시다.
: TList *MyButtonList = new TList;
: for(int i=0; i<100; i++)
:      {
:         TButton *TempButton = new TButton(this);
:         TempButton->Parent = this;
:          MyButtonList->Add(TempButton);
:      }
: 이 경우 컴퍼넌트 삭제는 다음과 같이 해야 합니다.
: while(MyButtonList->Count)
:      {
:           delete dynamic_cast<TButton *>(MyButtonList->Items[0]);
:           MyButtonList->Delete(0);
:       }
: -----------------------------------------------------
:
: 여기에서 TButtonButton 을 100개 만들었습니다.
: 근데 TButtonButton에 2번째나, 3번째 만들어진 버튼의 속성을 바꿀수 있는 방법은 없나요?
:
: 다시 말해서
: 2번째의 버튼의 Caption 을 "korea" 라고 주고 싶을땐 어떻게 하는지...
:
: 꼭 두번째가 아니라 임의의 만들어진 버튼의 속성을 어떻게 바꿀수 있는지...
:
: 좋은 하루 되세요~~~~~
:                  


임펠리테리입니다.

버튼들을 TList에 저장했다는 말씀이죠? TList의 아이템인 포인터를 TButton * 형으로 캐스팅하면
됩니다. 일반적으로 가장 안전한 것은 dynamic_cast 이지만, 이 dynamic_cast는 속도가 무지하게
느리므로, 만약 확실히 버튼들만의 리스트라서 확인해볼 필요도 없을 경우라면 표준 캐스팅을
사용하면 됩니다.

말씀하신 것처럼, 2번째 버튼의 캡션을 바꾸려면...
((TButton *)(ButtonList->Items[2]))->Caption = "새 캡션";

그럼 참고하시길...

+ -

관련 글 리스트
2791 [질문] Tip 란의 14번에 관해... 서영재 3566 2000/01/19
2801     Re:[질문] Tip 란의 14번에 관해... 박지훈.임프 3587 2000/01/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.