Главная страница
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.028 c
4-1075794884
LiteX
2004-02-03 10:54
2004.04.11
Поиск файлов и определение доступных дисков в системе.


14-1079390083
kaif
2004-03-16 01:34
2004.04.11
Анатомия ангелов


1-1082446308
V-Isa
2004-04-20 11:31
2004.04.11
JPEG and GIF -->> TBitMap


1-1080131031
Kein
2004-03-24 15:23
2004.04.11
Почему не ставится Делфи 5


8-1070552662
pavia
2003-12-04 18:44
2004.04.11
Direct3D