|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||||||||||
Генерация события компонента07.02.2012, 12:54. Показов 4556. Ответов 12
Метки нет (Все метки)
Как в программно сгенерировать(симулировать) событие на компоненте ?
Видимо, это должно быть не сложно, но при изучении VCL по книжкам я этот момент как-то пропустил Что нибудь типа
Я говорю не о конкретном клике на Батоне, меня интересует принцип ПРОГРАММНОЙ ГЕНЕРАЦИИ СОБЫТИЙ НА КМПОНЕНТАХ
0
|
|||||||||||
| 07.02.2012, 12:54 | |
|
Ответы с готовыми решениями:
12
Возможно ли отследить выполнение события от компонента билдера ? Почему для компонента TOpenDialog не отрабатываются события Как переопределить методы компонента, обрабатывающие события OnMouseEnter, OnMouseLeave |
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 07.02.2012, 13:15 | |
|
То ли я чего недопонял..., "событие на компоненте" обрабатывается некоей функцией (в простонародье - обработчиком), и как любую функцию ее можно вызвать из любого другого события, хоть по таймеру. Типа Edit1Change(0) или ..(this). Вот только если в функции используются передаваемые ей параметры, то их желательно включить в вызов корректно, иначе ... мало ли что.
1
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||
| 07.02.2012, 14:29 [ТС] | ||||||
|
nick42, Это немножко не то. Да, я могу вызвать обработчик OnClick своего батона, если Sender в обработчике не используется, могу передать хоть NULL. А если используется?
Или в VCL нет вообще такого механизма? Хотя он вполне естественен. Пример использования. Заказчик хочет иметь возможность не тыкать мышью в батоны, а давать команды через клаву. Ну и если такой механизм есть, я на каждую буквочку симулирую OnClick соответствующего батона и все дела. А если нет, приходится писать что-то вроде такого уродства
Беда еще в том, что у меня разные батоны обрабатываются одним обработчиком (по Tag их различающему) У меня Бюльдер 6
0
|
||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 07.02.2012, 14:37 | |
|
не знаю; я уверен, что это возможно. Дайте конкретный пример и я покажу, как это сделать. А грамотно сформулировать ответ... у меня программистский лексикон небогатый, увы.
1
|
|
|
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
|
||
| 07.02.2012, 14:41 | ||
|
Реализуйте что-то вроде командной строки! Хм..хотя представляя конечный вариант программы выходит интерпретатор какой-то..
0
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 07.02.2012, 14:56 | ||||||
|
ну, вот пример к Вашему случаю, мне кажется...
1
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||||||||||
| 07.02.2012, 15:25 [ТС] | |||||||||||
|
Ну, пример, что я привел - это так - для примера.
Попробую дать более содержательную задачу. Вот у меня на форме есть несколько компонентов. По событиям на них (OnClick, OnChange, OnSelect...) выполняются некие простые обработчики. Теперь я хочу одним махом (по какому-то другому батону или из пункта меню) запустить последовательность этих обработчиков, может быть даже в цикле. И если бы это было возможно, я бы написал что-то вроде
Те. последовательный вызов обработчиков OnChange привязанного к ListBox1. OnClick, привязанного к Button2 итд. С передачей в обработчики в качестве Sender именно ListBox1, Button2... Можно конечно скопировать в это место все эти обработчики. Но я очень не люблю дублировать код, и многие меня, наверное, поймут. Можно еще вытащить всю содержательную часть обработчиков в отдельные методы и вызывать эти методы как в них, так и в моем "Большом обработчике" Те. выход есть. Но интересно, есть ли возможность вызывать именно обработчик, привязанный к конкретному компоненту. Добавлено через 9 минут nick42, Спасибо, но опять не то. Это я видел. Громоздко как-то получается. Неоправдано громоздко. Но пока писал я пост, идея в голову пришла.
Попробую - доложу.
0
|
|||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 07.02.2012, 15:35 | |
- дальше - я пасс!
0
|
|
|
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
|
||||||
| 07.02.2012, 15:51 | ||||||
0
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||
| 07.02.2012, 15:54 [ТС] | ||||||
|
Урра! Все работает!
![]() Спасибо всем, кто принял участие
1
|
||||||
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|||||||
| 07.02.2012, 20:30 | |||||||
Тебе, видать, втемяшилось, что указатели на функцию - не такие же обычные указатели, как и на любые другие данные. Разобрался? - Поздравляю!
1
|
|||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 08.02.2012, 00:10 [ТС] | |
|
Day, как говаривал мой любимый писатель Виктор Шкловский, "Я - глухарь. Я клепал котлы изнутри". Понимаете, опыт работы на Минске-22, Урал-14 и пр. зря не проходит. Пока не увижу, как это все хозяйство ложится в память, понять не могу.
1
|
|
|
8 / 8 / 1
Регистрация: 06.09.2014
Сообщений: 52
|
||||||
| 17.04.2015, 10:43 | ||||||
|
Ув. тов., знатоки
!Подскажите, а можно ли в runtime-е назначать обработчики событий для __published-методов компонента (которые в коде программы не объявлены)? Я подозреваю, что можно начать так:
0
|
||||||
| 17.04.2015, 10:43 | |
|
Помогаю со студенческими работами здесь
13
Генерация события при обработке другого события Программная генерация события Генерация нестандартного события События активного и неактивного компонента
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|