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

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

Есть несколько кнопок у которых в событие OnClick прописана одна [D5, WinME]


Страницы:   1 2

Кен ©   (2002-10-31 05:05:00) 

и таже процедура Button1Click. А как в этой процедуре определить какая кнопка была нажата?

Вроде бы на то какая кнопка нажата должен указывать Sender , но он указывает на Form1, а не на кнопку. Как же определить ?

Есть вариант делать так :

procedure TForm1.N2Click(Sender: TObject);
begin
if ( Button1.Focused = true ) then ...
if ( Button2.Focused = true ) then ...
if ( Button3.Focused = true ) then ...
if ( Button4.Focused = true ) then ...
if ( Button5.Focused = true ) then ...
end;

но не у всех кнопок есть Focused. И вообще это какой то левый способ. Нет ли другого, попроще ?


skiph   (2002-10-31 05:20:00) [21]

Можно сделать так:
procedure TForm1.N2Click(Sender: TObject);
begin
if (Sender as TButton).Name="Button1" then ...
....
end;

Но есть другой вариант. Для каждой кнопкиопределяешь уникальное значение Tag (если в программе он тебе не нужен), т.е. для Button1.Tag=1, Button2.Tag=2 и т.д. И тогда процедума будет иметь более "красивый" вид:
procedure TForm1.N2Click(Sender: TObject);
begin
case (Sender as TButton).Tag of
1:...
2:...
3:...
....
end;
end;


Страницы:   1 2

Наверх

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