Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Динамическое создание Label


Автор: sinij 7.11.2005, 16:24
Подскажите как сделать один обработчик события для Лайблов созданых динамически.
И в зависимости от Лайбла на которов клацнули просто появлялось сообщение например с именем этого Лейбла.

Автор: _hunter 7.11.2005, 16:56
присваивать им всем при создании один и тот же обработчик:
label->OnXXX = label_ObXXX;
а в обработчике есть такое полезное поле как Sender:
TLabel* label = dynamic_cast<TLabel*>(Sender);
if ( label )
{
ShowMessage(label->Caption);
}

Автор: sinij 7.11.2005, 17:04
То что надо smile. Огромное спасибо.

Автор: PPS05 7.11.2005, 17:05
В заголовочном файле:

Код

class TForm1 : public TForm
{
...
public:
          ...
          void __fastcall onclick(TObject * Sender);
          ...
}


В .cpp:

Код

void __fastcall TForm1::onclick(TObject * Sender)
{
TLabel * L = (TLabel*)Sender;
ShowMessage(L->Caption);
}

...

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TLabel * L = new TLabel(Form1);
L->Parent = Form1;
L->Left = 20;
L->Top = 20;
L->Caption = "123jjjjjjjjjjjjjjjjjjj";
L->OnClick = onclick;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)