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
[18604] Re:[질문] Bevel이나 Group 위에 라벨이나 버튼을 배열로 만들어서 배치하려면...
똘똘이 [] 1038 읽음    2002-05-17 10:06
저는 이런경우 상황에 따라 두가지 방법을 씁니다.


첫번째)
가정 - 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;
            }
        }
   }
}

이상입니다.
횡설수설했는데 필요한곳에 응용해 보세요.

+ -

관련 글 리스트
18599 [질문] Bevel이나 Group 위에 라벨이나 버튼을 배열로 만들어서 배치하려면... 권기식 818 2002/05/17
18604     Re:[질문] Bevel이나 Group 위에 라벨이나 버튼을 배열로 만들어서 배치하려면... 똘똘이 1038 2002/05/17
18600     Re:[질문] Bevel이나 Group 위에 라벨이나 버튼을 배열로 만들어서 배치하려면... 조준회 1555 2002/05/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.