|
7 / 7 / 0
Регистрация: 06.08.2010
Сообщений: 12
|
||||||
Один обработчик для 100 кнопок?30.03.2011, 00:44. Показов 9390. Ответов 47
Метки нет (Все метки)
На форме есть 100 кнопок.
Как сделать один раз для всех кнопок, чтобы не описывать нажатие для каждой конкретной кнопки сто раз:
1
|
||||||
| 30.03.2011, 00:44 | |
|
Ответы с готовыми решениями:
47
Один обработчик для 9 кнопок Один обработчик для нескольких Image TMainMenu Один обработчик для нескольких пунктов |
|
10 / 10 / 4
Регистрация: 14.08.2010
Сообщений: 103
|
|
| 31.03.2011, 08:38 | |
|
Dersou, я однажды спрашивал и мне ответили тут Обратиться к определенной кнопке и по-моему это как раз то, что Вы ищете. Оттуда можно найти, как в одном событии для всех кнопок, определить какая именно кнопка была нажата.
0
|
|
|
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
|
|
| 31.03.2011, 10:36 | |
|
Если я правильно понял вопроса, то вот
. Так как события TButtonClick имеют один и тот же метод и те же аргументы. Когда заходите в инспекторе объектов в раздел Event, найдите там OnClick, и нажмите на стрелочку и выберите свой метод. И так на всех ста кнопок . Если что я сделал пример.
0
|
|
|
|
|||
| 31.03.2011, 15:16 | |||
, люди, ну читайте же тему от начала , повторяю второй раз - было уже :
0
|
|||
|
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
|||
| 31.03.2011, 15:49 | |||
|
0
|
|||
|
7 / 7 / 0
Регистрация: 06.08.2010
Сообщений: 12
|
|||||||
| 01.04.2011, 11:40 [ТС] | |||||||
|
- выделил все кнопки и в событии OnClick() выбрал Action1 ! - для передачи в Action1 значения Button->Tag нарисовал три строчки в Action1
Выражаю отдельную признательность "koldun" за то, что ткнул носом в мной проигнорированное сообщение от "kzru_hunter" Всем спасибо! З.Ы. Про 100 кнопок я, конечно, загибнул, - их всего 24, но был важен сам принцип. Ведь для меня после числа 5 идет "тьма". Путаюсь в цыфирях.
0
|
|||||||
|
|
|
| 01.04.2011, 22:33 | |
|
0
|
|
|
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
||||||||
| 01.04.2011, 23:18 | ||||||||
Не заметил сразу...
0
|
||||||||
|
|
||
| 01.04.2011, 23:22 | ||
. Остается надеяться, что со временем это пройдет и у него .
0
|
||
|
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
|
| 01.04.2011, 23:29 | |
|
LK, может быть
Но если человек невнимательно читает и игнорирует ответы на свой вопрос в своей же теме, то это как бэ намекает...
0
|
|
|
|
|
| 01.04.2011, 23:31 | |
|
Inadequate, согласен
.
0
|
|
|
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
|
|||||||||||
| 02.04.2011, 00:56 | |||||||||||
|
Мне было лень 100 кнопок делать, поэтому ток шестью обошелся
для начала создадим свой обработчик: *.h
*.cpp
0
|
|||||||||||
|
|
||||||
| 02.04.2011, 01:01 | ||||||
|
Gremlin, а фишка в чем ? или это повторение пройденного для закрепления ? и вот это
0
|
||||||
|
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
|
|
| 02.04.2011, 01:09 | |
|
LK,
ClassName() - ShortString ClassName().operator AnsiString() - а так уже AnsiString при if(...ClassName() == "TButton") - будет ошибка if(...ClassName().operator AnsiString() == "TButton") - а так нет (приводим ShortString к типу AnsiString)
0
|
|
|
|
||||||
| 02.04.2011, 01:17 | ||||||
|
а
0
|
||||||
|
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
|
||||||
| 02.04.2011, 01:20 | ||||||
|
в вашем посте: Один обработчик для 100 кнопок?
допущена критичная ошибка
0
|
||||||
|
|
|
| 02.04.2011, 01:23 | |
|
0
|
|
|
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
||||||
| 02.04.2011, 01:30 | ||||||
|
Gremlin, всё верно. Поэтому перед этим нужно проверить что вернет нам dynamic_cast.
LK, мысль проста, как я писал чуть выше dynamic_cast вернет нам либо указатель, либо 0. Так вот если на форме у тебя будет что-то помимо TButton, то т.к. ты забыл сделать проверку что именно вернет dynamic_cast, ты получишь AV. Попробуй кинуть на форму, что-то помимо TButton и проверь свой код. Т.е. сначала неплохо бы удостовериться, что это именно TButton
0
|
||||||
|
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
|
|
| 02.04.2011, 01:30 | |
|
LK, пожалуйста:
например такой компонент как MainMenu или TEdit это не TButton и при TButton* button; button = dynamic_cast<TButton*>(Components[i]); будет ошибка так как классы не совпадают без обид, но я это клоню к тому, что не нужно людей вводить в заблуждение это все равно что дать человеку компьютер и ни сказать (что это вообще такое)
0
|
|
|
|
||||||
| 02.04.2011, 01:38 | ||||||
|
ах, вы об этом
? да , запамятовал , но огород-то городить зачем ![]()
0
|
||||||
|
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
|
| 02.04.2011, 01:43 | |
|
LK, весьма нерациональное решение. У тебя получится много лишних обходов, кроме того если все создавалось динамически и имена компонентам не присваивались, то останешься в добавок и без результата.
0
|
|
| 02.04.2011, 01:43 | |
|
Один обработчик для нескольких кнопок
Один обработчик событий для нескольких кнопок один обработчик нажатия для всех кнопок
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|