Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамически создаваемые компоненты. [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо