Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


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

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


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

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


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

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


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

Спасибо!


 
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;


 
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]

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.031 c
6-1079460407
КомофОнСамый
2004-03-16 21:06
2004.05.09
Как вызвать окно с диалапом?


1-1082642324
Romario
2004-04-22 17:58
2004.05.09
MDI форма из DLL


6-1079437001
marat2
2004-03-16 14:36
2004.05.09
wininet - InternetFindNextFile - ERROR_IO_PENDING


3-1081778909
Gennadiy
2004-04-12 18:08
2004.05.09
Проблема с запросом в IBQuery


4-1079082244
saska
2004-03-12 12:04
2004.05.09
LoadMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский