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
[45793] Re:Re:Re:가령 체크박스를 여러개 선언하여 배열화 하는 방법은?
빈라덴 [namhee2] 1060 읽음    2006-07-22 16:23
요즘 일본애들한테 실력 없다고 무시받는데, 고수님들 덕분에..... 정말 열심히 해서....
일본애들한테 무시 안받겠습니다.
정말 감사합니다. 대한민국 만세!

참고로 ./// 일본에서 공부하는 실력없는 학생이지만... 여러분의 도움으로 실력있는 학생으로 변하겠습니다.

감사합니다.

빈라덴 님이 쓰신 글 :
: 두분 감사합니다.
:
: 장성호 님이 쓰신 글 :
: : 정확히 목적이 무엇인지 궁금합니다.
: :
: : VB에서는 Design타임대 Control을 배열로 선언할수 있지만
: : BCB에서는 안됩니다.
: :
: : 가령 TCheckBox 가 CheckBox1 ~~ CheckBox64 까지 64개 폼에 올려 놓았다고 가정합시다
: :
: : [방법1]
: : 전력으로 TCheckBox * 형 변수를 선언합니다
: :
: : TCheckBox *ChkBox[64];
: : void __fastcall TForm1::FormCreate(TObject *Sender)
: : {
: :     String sChkName;
: :     for(int i=0;i<64;i++)                                     //프로그램이 시작될때 Component를 찾아 모두 배열에 넣어줍니다.
: :     {                                                              //문론 Memory가    64 * 4 Byte 더 쓰게 되죠 
: :         sChkName="CheckBox"+IntToStr(i+1);
: :         ChkBox[i]=this->FindComponent(sChkName); 
: :     }
: : }
: : //---------------------------------------------------------------------------
: :
: : void __fastcall TForm1::Timer1Timer(TObject *Sender)   //원하시는대로 Timer에서 체크할수 있습니다.
: : {
: :     for(int i=0;i<64;i++)
: :     {
: :         if(ChkBox[i])
: :         {
: :             if(ChkBox[i]->Checked)ShowMessage("체크됨");
: :         }
: :     }
: :
: : }
: : //---------------------------------------------------------------------------
: : [방법2]
: : CheckBox를 Design타임때 만들지 말고
: : Coding으로 만들면 됩니다.
: :
: : 전역으로 배열 선언해 놓구
: : TCheckBox   *ckbox[64]
: :
: : 프로그램이 시작될때 전부다 만들어 줍니다. 문론 Click할때 동작할 함수도 걸구요
: :
: : void __fastcall TForm1::FormCreate(TObject *Sender)
: : {
: :     for(int i=0;i<64;i++)
: :    {
: :     ckbox[i]=new TCheckBox(this);
: :     ckbox[i]->Parent=Panel1;
: :     ckbox[i]->Left=10;
: :     ckbox[i]->Top=10;
: :     ckbox[i]->Width=50;
: :     ckbox[i]->Caption="CheckBox"+IntToStr(i+1);
: :     ckbox[i]->OnClick=CheckBox1Click;
: :    }
: : }
: : 코딩으로정확한 위치와 좌표 색상등을  모두 정확하게 해주기는 쉽지 않겠죠?
: :
: :
: : [방법3]
: : 만약 CheckBox가 50개 100개라 해서 CheckBox의 OnClick이벤트는 모두 하나의 함수에 걸어줄수 있습니다.
: : ObjectInspecter에서 모든 CheckBox의 OnClick함수를  같은함수로 걸어주면  됩니다.
: :
: : 문론 Coding으로도 가능하구요
: : CheckBox2->OnClick=CheckBox1Click;   //이런식으로 걸어줘도 되구요
: :
: : 여러개의 CheckBox가 하나의 함수로 뛸때 구분방법이 필요하겠죠
: :
: : 저는 구분을 주로 Tag로 합니다. 
: : 그러기 위해선 CheckBox마다 Tag값을 다르게 설정해 줘야 겠죠
: :
: : 뭐 다른 방법도 있습니다.
: : 이름이나  찾거나 Caption으로 구분하거나 등등
: :
: : void __fastcall TForm1::CheckBox1Click(TObject *Sender)
: : {
: :     if(Sender)
: :     {
: :         TCheckBox *ckBox=(TCheckBox *)Sender;
: :         if(ckBox->Checked)ShowMessage(IntToStr(ckBox->Tag)+"번 CheckBox가 되었습니다.");
: :     }
: : }
: : //---------------------------------------------------------------------------
: :
: :
: :
: :
: :
: : @목적이 CheckBox체크설정을 변경하기위해서 함수를 여러개 만들어야 된다고 생각하신다면...
: :
: : 문론 하나의 함수로 가능합니다.
: :
: : [방법1]
: : void __fastcall TForm1::CheckBoxChecked(String sChkName , bool bCheck)
: : {
: :     TCheckBox *ckBox=this->FindComponent(sChkName);
: :     if(ckBox)ckBox->Checked=bCheck;
: : }
: : //---------------------------------------------------------------------------
: :
: : [방법2]
: : //CheckBox의 Tag값을 모두 다르게 줬다면
: : 폼에 있는 ComponentCount 와 Components 를 이용해서
: : CheckBox만 모두 검색하여 Tag값이 같은것을 찾으면 됩니다.
: :
: :
: : ....................
: : 제가 해드린 답변중에 해답이 있었으면 좋겠네요
: :
: : 그럼
: :
: :
: :
: :
: : 빈라덴 님이 쓰신 글 :
: : : 가령 체크박스를 여러개 선언하여 배열화 하는 방법은?
: : :
: : : 좀 알려주세요.
: : :
: : :
: : : 64체크박스가 어디에 선택되었는지를
: : : 타이머에서 체크할려고 하고 싶은데....
: : :
: : : 체크박스를 배열화 하여 하는 방법은 없나요ㅕ?
: : :
: : : 물론 하나 하나 전부 함수를 선언하여 true나 false를 주는 방법은 있지만
: : :
: : :
: : : 다른 방법이요.

+ -

관련 글 리스트
45788 가령 체크박스를 여러개 선언하여 배열화 하는 방법은? 빈라덴 974 2006/07/21
45790     Re:가령 체크박스를 여러개 선언하여 배열화 하는 방법은? WARSHIP 958 2006/07/21
45789     Re:가령 체크박스를 여러개 선언하여 배열화 하는 방법은? 장성호 1610 2006/07/21
45792         Re:Re:가령 체크박스를 여러개 선언하여 배열화 하는 방법은? 빈라덴 1197 2006/07/22
45793             Re:Re:Re:가령 체크박스를 여러개 선언하여 배열화 하는 방법은? 빈라덴 1060 2006/07/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.