|
저는 이런경우 상황에 따라 두가지 방법을 씁니다.
첫번째)
가정 - GroupBox에 버튼이 5개 있고, 버튼명은 Button1,Button2,Button3,Button4,Button5 ;
헤더에 다음과 같이 정의합니다.
TButton *Button[5];
폼생성시 다음을 추가합니다.
Button[0] = Button1;
Button[1] = Button2;
Button[2] = Button3;
Button[3] = Button4;
Button[4] = Button5;
그러면 버튼5개에 대해선 배열처럼 사용할 수 있습니다.
for(int i=0;i<5;i++) Button[i]->Caption = String(i+1);
두번째)
가정 - GroupBox에 버튼 5개와 레이블 5개가 있고,
버튼명은 Button1,Button2,Button3,Button4,Button5
레이블은 Label1,Label2,Label3,Label4,Label5
가정에서 제시한 버튼들의 속성중 Tag를 1,2,3,4,5 로 설정하고
마찬가지로 레이블의 Tag 역시 1,2,3,4,5 로 설정하고
버튼의 OnClick이벤트를 모두 ButtonClick이라 설정합니다.
여기서 버튼이 눌려지면 해당 레이블에 '클릭' 이라고 표현하려면 다음과 같이 합니다.
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
int where;
where = dynamic_cast<TButton *>(Sender)->Tag;
for(int i=0;i<GroupBox->ControlCount;i++){
if(CompareText(GroupBox->Controls[i]->ClassName(),"TLabel")==0){
if(dynamic_cast<TLabel *>(GroupBox->Controls[i])->Tag==where){
dynamic_cast<TLabel *>(GroupBox->Controls[i])->Caption = "클릭";
break;
}
}
}
}
이상입니다.
횡설수설했는데 필요한곳에 응용해 보세요.
|