![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Greetings All!
Есть задача. Когда выпадает главное меню, создать в нём элементы, проинициализировать их (это я , ессно, и сам сделал), а потом регулярно обновлять до тех пор, пока меню не закроется(то есть пока юзверь не переключится на какой-нибудь другой контрол). В чём вопрос: как узнать, нажат ли сейчас именно нужный пункт меню? Чтобы я в таймере мог его опрашивать на состояние. |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Ну, думаю может создать глобальную переменную, в которую по событию OnClick записывать Sender, а потом уже глядеть на него...
|
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
OnClick - чего?
А если юзверь втихаря кликнул где-нить по форме, на которую я онклик не хочу делать? Тогда менюшка закроется и всё, а я этого не услежу. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Есмли нажат, то в OnClick
Чтобы получить имя объекта, который нажат (предварительно повесив процедуру на ВСЕ элементы MainMenu), можно так: Sender.Name или ( Sender as TMainMenu ) . Name, щас точно не помню... Вроде тебе именно это нужно. |
|||
|
||||
| Pakshin A. S. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Итема меню...
|
||||
|
|||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Как насчёт клика на форме?
Вот и чат пошёл... |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
А для чего клик на форме, ведь мы с меню работаем-с...
Добавлено @ 20:15
Дык енто есть гуд! Быстрее поможем-с... |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Pakshin A. S.
Mal Hack Ещё раз опишу постановку вопроса. До тех пор, пока какая-то часть главного меню "выпала" (то есть нажат итем "Файл", и видны New, Open, Save etc.) нужно чёто делать раз в полсекунды. То есть надо отловить момент, когда это самое меню закроется, чтобы перестать чё-то делать. Как вы понимаете, менюшка может закрыться не только от клика в самом меню. |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Извините, Удаляюсь из-за того, что ответа не знаю, и дабы не быть улеченным во флейме.. Может к завтрашнему дню смогу дать ответ... |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
1)Событие OnClick - срабатывает на пункте если мы по нему кликнули или если данный пункт имеет подменю(а точнее подпункты) и оно активировалось... как следствие - повесив обработчик на OnClick мы можем узнать что меню активировалось и какое енто меню, а также узнать информацию о подменю(и при необходимости что нить изменить
2)Из ходя из 1 пункта мы знаем что меню... активно. Но нам надо знать что меню закрылось... для ентого ловим сообщение WM_CAPTURECHANGED или его не видно WM_UNINITMENUPOPUP. Пример для первого и второго пункта:
Удачи. Это сообщение отредактировал(а) Girder - 24.10.2004, 02:23 Присоединённый файл ( Кол-во скачиваний: 10 )
eMenu.zip-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| mutex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.10.2004 Репутация: нет Всего: 3 |
Лови сообщение WM_COMMAND и LoWord(wParam) даст CommandID пункта меню, к-рый юзер щелкнул. Затем по FindItem ищи этот ID циклом среди всех элементов MainMenu.
|
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Girder
Спасибо за сэмпл! В нём есть то, что нужно. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |