Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MainMenu и MenuItem / 11 сообщений из 11, страница 1 из 1
14.03.2003, 19:10
    #32120502
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Здравствуйте битых 2 часа уже бьюсь, подскажите кто знает.

На форме 4 TMainMenu

Как в событии OnClick TMenuItem-а используя Sender добраться до TMainMenu, которому TMenuItem принадлежит?
...
Рейтинг: 0 / 0
14.03.2003, 19:23
    #32120511
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Да, еще MainMenu привязаны к ToolBar-ам на форме. Их соответственно тоже 4.
...
Рейтинг: 0 / 0
14.03.2003, 19:27
    #32120514
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Рыская по инспектору, вот что нашлось:

TToolBar(TMenuItem(Sender).Parent.Owner.Owner).Menu

Неужели, только так сложно ?
...
Рейтинг: 0 / 0
15.03.2003, 08:31
    #32120603
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Код: plaintext
(Sender as TMenuItem).GetParentMenu

или, что то же самое:
Код: plaintext
TMenuItem(Sender).GetParentMenu
...
Рейтинг: 0 / 0
16.03.2003, 13:38
    #32120745
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Именно так я и пытался делать с самого начала.
Но такой вызов проходит только с TMenuItem, которые являются основными пунктами главного меню (расположены в строке меню), а вот с пунктами выпадающих меню это не проходит.
GetParentMenu возвращает указатель на компонент, имеющий согласно инспектору отладчика пустое имя, а Owner-ом соответствующий ToolBar, однако на попытку раскрыть (.Owner) выдается ошибка Inaccessible value :((

Такая вот непонятная мне петрушка.
...
Рейтинг: 0 / 0
17.03.2003, 09:37
    #32120881
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
...На форме 4 TMainMenu...

А зачем так много ?? Одним нельзя обойтись?
...
Рейтинг: 0 / 0
17.03.2003, 09:42
    #32120888
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
А что показывает отладчик на:
Код: plaintext
TMenuItem(Sender).GetParentMenu.ClassName
?
...
Рейтинг: 0 / 0
17.03.2003, 09:45
    #32120890
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
2 m_kus:

TPopupMenu
...
Рейтинг: 0 / 0
17.03.2003, 09:49
    #32120894
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Может я не понимаю?
Но ты написал, что не работает на выпадающих меню, но ведь TPopupMenu - выпадающее меню? То есть она правильно делает сслыку на ParentMenu...
А тебе что надо получить?
...
Рейтинг: 0 / 0
17.03.2003, 09:52
    #32120897
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Может я где-то путанно, но мне надо было получить ссылку на TMainMenu
...
Рейтинг: 0 / 0
17.03.2003, 10:00
    #32120902
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MainMenu и MenuItem
Похоже, я начинаю понимать...
Когда ты привязываешь TMainMenu к TToolBar он копирует все элементы меню в кнопки, динамически создавая новые TPopupMenu для всех всплывающих меню - то есть связь с исходным TMainMenu не сохраняется (это действительно уже другое меню с точно такими же пунктами). Таким образом, ссылку на исходное меню можно получить только способом найденным тобой: TToolBar(TMenuItem(Sender).Parent.Owner.Owner).Menu (но Sender уже не является частью этого меню). Могу посоветовать использовать TAction - может проблем будет и меньше... Удачи!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MainMenu и MenuItem / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]