여러가지 방법이 있겠지만...TComponent 의 Tag 를 사용해 보시지요^^
: for ( int i = 0; i < 10; i++) {
: pBox[i] = new TCheckBox(this);
: pBox[i]->OnClick = UserClick;
: pBox[i]->Top = i * 20 + 20;
: pBox[i]->Parent = GroupBox1;
: pBox[i]->Left = 10;
//
pBox[i]->Tag = i; <===추가
//
: }
void __fastcall TForm1::UserClick(TObject *Sender)
{
pBox[((TComponent*)Sender)->Tag]->Caption="now cliecked";
tag를 안쓰고 다른방법으론
TCheckBox*c=(TCheckBox*)Sender;
for(int i=0;i<10;i++){
if(pBox[i]==c){
pBox[i]->Caption="now cliecked";
}
}
}
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_faq&no=15
도 한번 읽어보십시요...
초짜 님이 쓰신 글 :
: 어떤 문제가 나오고 거기에 대한 답을 동적으로 생성된 라디오 버튼으로
:
: 답을 체크하는 프로그램입니다.
:
: 우선 UserClick를 만들어서 동적으로 생성된 라디오 버튼의 클릭이벤트는 얻어왔는데요..
:
: 값을 어떻게 구분해주는 것이 가장 좋은 방법인지 몰라서 이렇게 질문을 올립니다.
:
: TCheckBox *pBox[10]; // 헤더에는 이렇게 선언해놨구요..
:
: for ( int i = 0; i < 10; i++) {
: pBox[i] = new TCheckBox(this);
: pBox[i]->OnClick = UserClick;
: pBox[i]->Top = i * 20 + 20;
: pBox[i]->Parent = GroupBox1;
: pBox[i]->Left = 10;
: }
:
: void __fastcall TForm1::UserClick(TObject *Sender)
: {
: //
: }
:
: 우선 꽁수로는 체크박스의 위치를 역으로 계산해서 값은 구했지만.. 역시나 꽁수인지라. -_-
:
: 좋은 답변 좀 부탁드립니다.
:
: 할 줄 아는게 꽁수밖에 없어서 너무 답답해요.. ㅠ.ㅠ