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
[27142] Re:[질문]동일한 컴포넌트를 Tag를 이용해서 처리하기
posix.duo [posix] 693 읽음    2003-09-10 12:06
동일한 이벤트를 연결하여 사용하여 간편하게 사용하기 위해서 컴포넌트의 이름에 일련번호를 부여하면 편리합니다.
Edit 컴포넌트를 사용하신다면, Edit1, ..., Edit20이라고 이름을 주었을 경우 FindComponent method를 같이 사용하면 아주 간단한 코드로 원하시는 기능을 수행할 수 있습니다.
마우스로 클릭하여 선택된 에디트만 바탕색을 노란색으로 주고 나머지는 하얀색의 바탕색으로 지정하는 기능을 구현할 경우 아래와 같이 해주시면 됩니다.

{
        ....
        for(int i=1; i<21; i++)
        {
                ((TEdit*)FindComponent("Edit"+IntToStr(i)))->Color = clWhite;
        }
        ((TEdit*)Sender)->Color = clYellow;
}

하안인 님이 쓰신 글 :
: 동일한 컴포넌트가 20여개 있을때 버튼을 클릭했을때 컴포넌트의 색깔을
: 바꾸고자 합니다.
:
: ((TComponent*)Sender)->Tag로 Tag의 숫자값을 알수있는데
:     Tcomponent에 Color 프로퍼티는 없더군요.
:
: Tag값을 아니
:
:    switch(((TComponent*)Sender)->Tag)
:    {
:     case 0 :
:         Edit1->Color = clBlue;
:         break;
:     case 1:
:         Edit2->Color = clRed; 
:        
:     }
:
: 이런식으로는 할수 있겠지만 switch문을 안쓰고(컴포넘트가 100개면 줄수가 엄청나서..)
:
: 해결하려면 어떻게 해야 하나요.
:
: << 검색기능이 안되서 전에 본적이 있는것 같은데 수동으로 찾아보니 찾지를 못하겠더라고요 >>

+ -

관련 글 리스트
27125 [질문]동일한 컴포넌트를 Tag를 이용해서 처리하기 하안인 609 2003/09/08
27142     Re:[질문]동일한 컴포넌트를 Tag를 이용해서 처리하기 posix.duo 693 2003/09/10
27131     Re:[질문]동일한 컴포넌트를 Tag를 이용해서 처리하기 김형덕 626 2003/09/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.