Форум — Ответы     (  К темам )
 ?  CrazyRol: Как подвесить события на динамически создаваемые кнопки? (05-04-2003 00:40:06)
Глубокоуважаемый all!
Создал я динамически несколько кнопок:

TButton *ChBut[8];
void __fastcall TMyForm::FormCreate(TObject *Sender)
{
for(int i=0;i<8;i++)
{
ChBut[i]=new TButton(this);
ChBut[i]->Parent=this;
ChBut[i]->Left=5;
ChBut[i]->Top=25+30*i;
ChBut[i]->Width=75;
ChBut[i]->Height=25;
ChBut[i]->Caption=i+1;
}
}

А как теперь на нажатие каждой кнопки подвесить событие?
 Владимир (05-04-2003 14:10:32)
Например так:
// в файле Unit1.h
public: // User declarations
void __fastcall MyButClick(TObject *Sender);
// в файле Unit1.cpp
TButton *ChBut[8];
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for(int i=0;i<8;i++)
{
ChBut[i]=new TButton(this);
ChBut[i]->Parent=this;
ChBut[i]->Left=5;
ChBut[i]->Top=25+30*i;
ChBut[i]->Width=75;
ChBut[i]->Height=25;
ChBut[i]->Caption=i+1;
ChBut[i]->Tag = i+1;
ChBut[i]->OnClick = MyButClick;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MyButClick(TObject *Sender)
{
ShowMessage("Click in "+IntToStr(((TButton*)Sender)->Tag)+" button");
}
//----------------------------------------------------------------------------