40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
|
1 | |
Обработчик событий для динамических кнопок15.06.2017, 17:24. Показов 4951. Ответов 16
Метки динамические кнопки (Все метки)
Всем доброго времени суток.
Суть вопроса такая: Необходимо сделать настраиваемую систему АРМ. То есть захожу в настройки, добавляю позиции, для каждой позиции прописываю некие параметры, которые при сохранении для заносятся в БД (mysql, обычный файл, с этим проблем нет). Так вот, когда открывается программа, создаются динамические кнопки с текстом наименования товара и ценой (из БД) И вот тут я еще плаваю, не знаю как написать для каждой динамической кнопки свой обработчик, чтобы при нажатии на апельсин подгружалась цена 50р, а при нажатии на ананас 100р. Среда: delphi Seattle Заранее признателен за помощь.
0
|
15.06.2017, 17:24 | |
Ответы с готовыми решениями:
16
Создание событий для динамических объектов Обработчик событий для Enter Обработчик событий для нескольких компонентов Один обработчик для нескольких кнопок |
4918 / 2786 / 855
Регистрация: 04.10.2012
Сообщений: 10,148
|
|
15.06.2017, 17:27 | 2 |
1
|
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
|
15.06.2017, 17:33 [ТС] | 3 |
Спасибо, буду разбираться
0
|
4918 / 2786 / 855
Регистрация: 04.10.2012
Сообщений: 10,148
|
|
15.06.2017, 17:35 | 4 |
1
|
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
|
15.06.2017, 17:36 [ТС] | 5 |
На самом деле это не то что нужно. Как написать единый обработчик для всех кнопок я знаю.
А как сделать для каждой динамической кнопки отдельно, допустим чтобы эта кнопка проверяла значение из базы и выдавала ответ
0
|
4918 / 2786 / 855
Регистрация: 04.10.2012
Сообщений: 10,148
|
|
15.06.2017, 17:39 | 6 |
создавайте для каждой кнопки отдельный обработчик. Как создать обработчик?? Пример в архиве.
назначайте необходимые действия в обработчике и все.
1
|
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
|
15.06.2017, 17:43 [ТС] | 7 |
Попробую по другому выразиться,в этом примере нужно заранее в коде для каждой динамической кнопки прописать обработчик, а если пользователь в настройках выберет 6 кнопкок, вобьет 6 наименований и цен. Вот как при создании динамической кнопки понять какая за какую отвечает без правки кода
0
|
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
|
|
15.06.2017, 20:02 | 8 |
Невозможно все варианты событий предусмотреть, т.е. необходим инструмент позволяющий писать код в рантайме. Попробуйте посмотреть в сторону Pascal Script
1
|
15.06.2017, 20:21 | 9 |
не нужно каждой кнопке свой обработчик
всем кнопкам - один вы должны узнать, что за кнопка нажата (это параметр Sender) и найти ту структуру данных, к которой эта кнопка привязана логически и все, с этого момента о кнопке забываем. просто работаем с данными
1
|
4918 / 2786 / 855
Регистрация: 04.10.2012
Сообщений: 10,148
|
|
16.06.2017, 04:50 | 10 |
1
|
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
|
16.06.2017, 06:53 [ТС] | 11 |
Крапоткин)) не заходил на форум больше 1,5 лет, т.к. осваивал другой язык, а он до сих пор помогает людям ) СПАСИБО
а есть пример какой-нибудь, прочитал кучу мануалов на эту тему, но везде все сводится к but.onclick=procedure... и т.д. Не встречал еще Sender Добавлено через 1 минуту В моей программе осталось только этот момент довести до ума, даже с работой ККМ все отлажено. Если найду решение сегодня допишу)
0
|
16.06.2017, 08:36 | 12 | |||||
Сообщение было отмечено fidel42rus как решение
Решение
0
|
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
||||||
16.06.2017, 12:02 [ТС] | 13 | |||||
спасибо
Решил вопрос так:
Честно говоря из-за этого перешел на веб языки, т.к. там удобнее работать и отрисовывать страницу, в делфи с созданием динамических компонентов столько сложностей, где разместить и т.д. Накаладываются друг на друга.... постоянно учитывать координаты предыдущего компонента... И напоследок еще вопрос, сейчас я создаю кнопки столбиком, с текстовым значением. А как бы их создавать в gridlayout. каждую кнопку в отдельную ячейку
0
|
16.06.2017, 12:11 | 14 |
нет смысла в гридлэйаут
они же программно создаются. не руками ж координатки задавать))) есть вариант кидать каждую в панель и делать панели Align=top но координатки все-таки задать изначально надо. например Panel.top :=10000; а дальше она сама
1
|
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
|
|
16.06.2017, 14:33 [ТС] | 15 |
как я сам не допер)) спасибо)
Добавлено через 2 минуты но все таки хочется сеткой накладывать кнопки, в 4 в ряд
0
|
16.06.2017, 16:28 | 16 | |||||
0
|
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
|
|||||||
16.06.2017, 19:46 | 17 | ||||||
Гомеопат,
0
|
16.06.2017, 19:46 | |
16.06.2017, 19:46 | |
Помогаю со студенческими работами здесь
17
Напишите обработчик событий для указанных действий Как вызвать обработчик событий для кнопки в Delphi 7? Написать для трех кнопок общий обработчик OnClick для вывода, скрытия/отображения и изменения цвета текста Программное создание событий для кнопок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
|
Как определить, содержит ли строка подстроку в JavaScript
InfoMaster 19.01.2025
При разработке веб-приложений часто возникает необходимость выполнять различные операции со строками, среди которых особое место занимает поиск подстрок. JavaScript предоставляет несколько встроенных. . .
|
Что такое метаклассы в Python
InfoMaster 19.01.2025
Метаклассы в Python представляют собой один из самых мощных и одновременно сложных механизмов языка, позволяющий программистам контролировать процесс создания классов. По своей сути, метакласс. . .
|
Как удалить свойство из объекта JavaScript
InfoMaster 19.01.2025
В современной веб-разработке объекты JavaScript играют фундаментальную роль в организации и структурировании данных. Они представляют собой контейнеры, которые хранят связанные данные и. . .
|
Какая разница между String и string в C#
InfoMaster 19.01.2025
В языке программирования C# существует интересная особенность: для работы со строками можно использовать как String, так и string. Эта двойственность часто вызывает вопросы у разработчиков, особенно. . .
|
Как в Git откатить репозиторий к предыдущему коммиту
InfoMaster 19.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, предоставляя разработчикам мощные инструменты для управления изменениями в. . .
|
Как работают замыкания (closure) в JavaScript
InfoMaster 19.01.2025
В мире современной веб-разработки замыкания (closures) представляют собой один из фундаментальных концептов языка JavaScript, который часто вызывает затруднения у начинающих разработчиков, но при. . .
|