|
안녕하세요 만해 입니다.
저는 김백일 님하고 조금 틀린 방법으로 찾아 내는데요
소스를 그대로 가져 와서 설명을 드리면
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TButton *MyButton[4][5];
for (int i=0; i < 4; i++)
for (int j=0; j < 5; j++)
{
MyButton[i][j] = new TButton(this);
MyButton[i][j]->Parent = Panel1;
MyButton[i][j]->Left = 10+ j*80;
MyButton[i][j]->Top = 10 + i*40;
MyButton[i][j]->Caption = "동적 버튼 -" + IntToStr(i) +","+ IntToStr(j);
MyButton[i][j]->OnClick = MyButtonClick;
MyButton[i][j]->Tag = i*5 + j;
// 위의 문장이 틀린데요 Button의 Tag란 속성에다가
// 현재 Button의 선형주소를 집어 넣는 거지요
// 그러니깐~
// i :0 1 2 3 4
// j :0,1,2,3,4,5,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5
//선형주소 :0,1,2,3,4,5,6,7,8,9,10~~~~~
// 아시겠지요~
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MyButtonClick(TObject *Sender)
{
switch ( (dynamic_cast<TButton*>(Sender)->Tag )
{
case 0 : ShowMessage("0 Tag를 가진 버튼이 클릭되었습니다");break;
case 1 : ShowMessage("1 Tag를 가진 버튼이 클릭되었습니다");break;
case 2 : ShowMessage("2 Tag를 가진 버튼이 클릭되었습니다");break;
// 뭐 이런식으로 스위치 문에서 사용하기 괘안은 방법이지요~
}
}
//---------------------------------------------------------------------------
대충 설명이 되었는지 모르겠네요
그럼 이만~
|