Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Вопрос делфисту, тема TButton   Найти похожие ветки 

 
4aynik   (2004-04-24 17:53) [0]

в реж. run-time я создаю несколько кнопок(button.create), сохраняю их в массиве типа Тбаттон.
потом при нажатии каждой выполняется одно и то же действие, как
понять какая из них нажата, чтобы выполнять разные действия.
пробую, но никак не додумаюсь.
Спасибо!


 
Mihey ©   (2004-04-24 18:53) [1]

Запиши в тэг кнопки индекс, а потом (Sender As TButton).Tag.


 
4aynik   (2004-04-25 00:58) [2]

Спасибо!


 
KirillSKTS   (2004-04-25 09:46) [3]

А Sender тогда зачем???
вот обработчик события:

procedure TForm1.Button1Click(Sender: TObject);
begin
if Sender is TButton then
begin
 if Sender=ArrayOfButton[0] then ....... else
 if Sender=ArrayOfButton[1] then ....... else
 if Sender=ArrayOfButton[2] then ....... else
........
 if Sender=ArrayOfButton[n] then ....... else
end;


 
Polevi ©   (2004-04-25 09:51) [4]

не проще ли каждой кнопке назначить свой обработчик из которого сначала вызывать некую общую для всех процедуру, если это необходимо ?


 
KirillSKTS   (2004-04-25 10:25) [5]

Я его понимаю - бывает не проще. Так гораздо лучше читается. Если у меня на 9 задвижек на мнемосхеме, которая отображает один из 12 фильтров, один обработчик события. Отладка просто прелесть. Действия то типовые: Откр-Закр отличаются только номером фильтра и задвижки... Задвижка-это компонента с событием ОнКлик.


 
Anatoly Podgoretsky ©   (2004-04-25 10:42) [6]

Разные действия, разные обработчики, одинаковые действия общий обработчик. Зачем городить кашу из if/case


 
KirillSKTS   (2004-04-25 11:19) [7]

не совсем одинаковые - один и тот же набор действий для каждой задвижки но с разными коэф. В обоих случаях получаем один и тот же результат. Я сначала делал 9 обработчиков - захламляется текст одним и тем же+ дублируется код+размер кода (ерунда конечно, но ведь красиво должно быть :). После сделал 9 обработчиков которые вызывают одну функцию...а еще после все свел в одну функцию - просто и красиво. ИМХО - на вкус и цвет как известно. :) Но главное результат-один и тот же. А насчет каши... незнаю. Десяток функций или одна конструкция if/case это уже как нравится.


 
evvcom ©   (2004-04-25 15:47) [8]

Нет, это мусор! А если надо будет 1000 элементов сделать? На каждый из них копировать обработчик? Сам же утонешь потом в этой каше.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.115 c
1-1080280135
Ozone
2004-03-26 08:48
2004.04.11
TMemoryStream


7-1079005742
bg8
2004-03-11 14:49
2004.04.11
Синхронизация приборов с помощью TTL логики


1-1082715820
zorik
2004-04-23 14:23
2004.04.11
не вигружается dll


1-1082717576
Roman_M
2004-04-23 14:52
2004.04.11
Работа с dll из Дельфей 3-х и 6-х.


7-1080227639
Seldon
2004-03-25 18:13
2004.04.11
Блокировать сообщение в хуке.