|
서영재 님이 쓰신 글 :
: -------------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 = "새 캡션";
그럼 참고하시길...
|