|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2014, 13:23 | #1 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Перехват сообщений в классе
Всем привет!
Вопрос такой. Есть компонент, наследник TWebBrowser. Добавлены методы работы с формами, и другими объектами DOM. Хочу сделать также свое контекстное меню, но не знаю, как назначить обработчик сообщений для всех экземпляров класса. Пока делаю так: Код:
Можно ли как-то внедрить каллбэк функцию в сам класс? Или можно ли в каллбэк функции обработать сообщения сразу для всех экземпляров класса?
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
20.11.2014, 16:34 | #2 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Всем спасибо за ответы!
Поразмыслив немного, решил, что локальный хук тут неуместен, и пошел другим путем. А именно, путем отлова сообщений TApplication Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
20.11.2014, 16:42 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я лично так никогда не делал.
I'm learning to live...
|
20.11.2014, 17:44 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
если уж на то пошло то внутри своего приложения можно в принципе оконную процедуру для окна подменить, без хуков.(тока старую сохранить надо)
см SetWindowLong. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
20.11.2014, 17:59 | #5 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Вот полная процедура перехвата нажатий кнопок в браузере. Тут проверяется, выполнен ли правый клик именно на компоненте, а также реализована поддержка функциональных клавиш и исключение акцесс виолейшен
Код:
Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
20.11.2014, 18:03 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а теперь создайте два браузера и уничтожьте один из них
как вариант хранить количество существующих компонентов. (тока не забываем менять счетчик через Interlocked функции, на всякий случай) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
20.11.2014, 18:09 | #7 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Код:
Как быть?
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
20.11.2014, 19:06 | #8 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Проблему решил следующим образом
Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru Последний раз редактировалось grominfo; 20.11.2014 в 19:10. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перехват сообщений icQ | Xandr | Работа с сетью в Delphi | 6 | 10.08.2010 15:09 |
Перехват сообщений | -Flasher- | Общие вопросы Delphi | 5 | 15.03.2010 12:44 |
Перехват сообщений в сервисе | mosian | Win Api | 0 | 22.07.2009 12:18 |
Перехват сообщений от Службы сообщений (Messenger) | SJMS | Win Api | 6 | 17.07.2008 10:26 |
Перехват сообщений | rubi | Win Api | 3 | 06.09.2007 00:25 |