![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамически создаваемые компоненты. [D7, Win95/98]
sashok © (2004-07-23 22:10:00)Я по ходу программы создаю две кнопки и делаю процедуру ButtonClick для обрабатывания ONClick этих кнопок.
Как мне узнать: какая кнопка вызвала эту процедуру (тоесть, проще говоря - какая кнопка была нажата)?
Var but1,but2:tbutton;
Procedure ButtonClick(sender: TObject);
Begin
// Вот здесь собственно мне и нужно узнать что за кнопка
// вызвала эту процедуру
End;
Begin
but1:=TButton.Create(Form1);
but2:=TButton.Create(Form1);
but1.Parent:=Form1;
but2.Parent:=Form1;
but1.ONClick:=@ButtonClick;
but2.ONClick:=@ButtonClick;
End;
Заранее спасибо
\/\//\/\ (2004-07-24 18:43:00) [1]
> Palladin © (24.07.04 15:24) [5]
Сколько вас умных...
Нет, нет! Не переживай - ты умнее:)
Palladin (2004-07-24 15:24:00) [2]Сколько вас умных... и ни один из умных не сказал что обработчик события должен быть методом класса...
\/\//\/\ (2004-07-24 03:57:00) [3]А ещё проще, в этом случае, для каждой кнопки сделать свой обработчик: Button1Click, Button2Click.
> sashok (23.07.04 22:10)
Ты же наверное хочешь после того, как определишь какая кнопка была нажата, выполнить разные действия для той или иной кнопки. Вот и не нужно будет определять. Всё-равно ведь используешь разные переменные для TButton.
Германн (2004-07-24 02:44:00) [4]А не проще ли в данном случае в процедуре ButtonClick проверять - if Sender = but1 then...
else if Sender = but2 then...
else ShowMessage("Error");
KADAN (2004-07-24 02:30:00) [5]задай свойство Tag кнопкам (например, Button1.Tag:=1, Button2.Tag:=2)
в ButtonClick проверяй TButton(Sender).Tag
Palladin (2004-07-23 22:12:00) [6]TNotifyEvent+F1