|
동일한 이벤트를 연결하여 사용하여 간편하게 사용하기 위해서 컴포넌트의 이름에 일련번호를 부여하면 편리합니다.
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개면 줄수가 엄청나서..)
:
: 해결하려면 어떻게 해야 하나요.
:
: << 검색기능이 안되서 전에 본적이 있는것 같은데 수동으로 찾아보니 찾지를 못하겠더라고요 >>
|