Форум - Ответы     (  К темам )
 ?  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) http://cbuilder.ru

Например так:

// в файле 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");
}
//----------------------------------------------------------------------------


support@cbuilder.ru