함수를 동적생성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
: 이런식으로 나누고 싶은데 어떤 방법이 있을까요?