Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
1-1079726476
san
2004-03-19 23:01
2004.04.11
Помогите вывести формулу на экран в нормальном виде.


8-1071825862
Buffoon
2003-12-19 12:24
2004.04.11
FPS


3-1079011054
эд
2004-03-11 16:17
2004.04.11
как из файла Excel взять данные и занести в StringGrid


14-1082027366
Vlad Oshin
2004-04-15 15:09
2004.04.11
Чудесатые жалобы на wХР.


3-1081776206
Addon
2004-04-12 17:23
2004.04.11
Как организовать взаимодействие проги с Инетовской БД?




   Наверх