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
[67695] Re:체크 박스를 동적생성 했습니다.하지만 문제가 있어 질문을 드립니다.~
장성호 [nasilso] 1725 읽음    2012-07-10 00:46
함수를 동적생성Control 갯수만큼 만든다면 ..
동적생성의 의미가 반감될듯 하네요

OnClick이벤트이면

TObject *Sender 라는 파라메터가 있습니다.

이 Sender가 실제로 Click한 TCheckBox 입니다.

Sender를 이용해서
어떤 Control에서 이벤트가 발생한것인지 알수 있습니다.

================================================

Design-time에 Form위에 올려진 Control이면
Name이 모두 다른데..

동적 생성인 경우엔 Name으로 체크하기는 힘들고..

보통 .. Tag값을 동적생성하면서 다르게 주고..
이벤트에서 Sender를 cast해서 Tag값을 체크해서 처리하기도 합니다.

//동적생성..
ChkBoxArr2[i] ->Tag = i ;



//이벤트에서..
void __fastcall TForm1::ChkRowExcute2( TObject *Sender )
{
    TCheckBox *ChkBo= ( TCheckBox * ) Sender;
    ChkBox->Tag ; // 동적생성에 설정한 i 값이 됨

}


그럼 ..


쌩조 님이 쓰신 글 :
: 질문 내용이 제목이랑 맞는지 잘 모르겠지만 .
: for (int i = 0; i <= 1000; i++) {
:     ChkBoxArr2[i] = new TCheckBox(this);
:     ChkBoxArr2[i]->Caption = "CycleRow" + IntToStr(i);
:     ChkBoxArr2[i]->Left = 16;
:     ChkBoxArr2[i]->Top = (i*16);
:     ChkBoxArr2[i] ->Width = 90;
:     ChkBoxArr2[i] ->Parent = ScrollBox2;
:     ChkBoxArr2[i] ->OnClick = ChkRowExcute2;
: }
: 이렇게 체크 박스를 동적 생성하여 만들었습니다.
:
: 체크박스가 1~10까지 생성하면
: 이벤트가 버튼 1을 클릭하든 2를 클릭하든 같은 이벤트를 발생하게 됩니다.
:
: 버튼1은 a
: 버튼2는 b
: 버튼3은 c
: 이런식으로 나누고 싶은데 어떤 방법이 있을까요?

+ -

관련 글 리스트
67694 체크 박스를 동적생성 했습니다.하지만 문제가 있어 질문을 드립니다.~ 쌩조 1661 2012/07/09
67695     Re:체크 박스를 동적생성 했습니다.하지만 문제가 있어 질문을 드립니다.~ 장성호 1725 2012/07/10
67724         Re:Re:체크 박스를 동적생성 했습니다.하지만 문제가 있어 질문을 드립니다.~ 쌩조 1899 2012/07/12
67725             Re:Re:Re:체크 박스를 동적생성 했습니다.하지만 문제가 있어 질문을 드립니다.~ 장성호 3324 2012/07/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.