![]() |
|
|
![]()
|
|
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
как реализовать "контекстнозависимое" меню?
т.е. меню, элементы которого зависят от "типа" активного окна, полностью раскрытого (wsMaximized), элементы меню дочернего окна добавляются к элементам меню основного окна ... может технология как-то иначе называется!? таким же образом в некоторых программах обходятся и с панелью "инструментов"!!! подскажите как реализуется, мне кажется это должно быть с минимумом кода ... Это сообщение отредактировал(а) korotkov - 17.10.2006, 21:48 |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
Если работаешь в Borland C+ Builder, читай во встроенной справке среды описание компонента TPopupMenu, а также воспользуйся поиском по форуму, ибо подобные темы уже обсуждались.
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
еслибы ты прочитал внимательно исходное сообщение, то не писал бы глупости нравоучительным тоном!!!
для таких пИсак я еще ж хотел приписать, не контекстное меню (Popupmenu), а "контекстнозависимое" ... основное меню главного окна, которое меняет список своих SubMenu ... знал что найдется "мудрец" не умеющий читать, а только пИсать ;) набрал я поиском, по твоему "совету" фразу "контекстнозависимое меню" и что я увидел: свой же вопрос ... и все! В том то и вопрос, что я не знаю как эта "возможность" в программах называется. ... читай вопрос прежде чем нравоучать, дурная привычка!!! ну и конечно же Borland C++ Builder? я ж раздел правильно выбрал ;) Модератор: А зачем же так волноваться и грубить. Вас не поняли и да и я бы непонял. Нужно правильно задавать вопросы и только. Ответ ниже Это сообщение отредактировал(а) Vyacheslav - 18.10.2006, 10:12 |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
1. В MDI модели слияние (Merge) поддерживается автоматически. Достаточно на дочернюю форму добавиль свое TMainMenu
2. Если Вы не используете MDI модель, то слияние можно осуществить вручную Смотрите хелп TMainMenu::Merge -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
> TMainMenu::Merge
Спасибо Из вопроса то можно было понять что речь идет не о PopupMenu Этот вопрос как раз из той серии, что еслиб я смог сформулировать четко вопрос, то и ответ бы нашел!!! Может подскажете как должен был звучать вопрос ;) А может еще: >таким же образом в некоторых программах обходятся и с панелью "инструментов"!!! ToolBar или еще какой-нибудь компонент может такоеже позволить с кнопками ... |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Э...
Тут сложнее. Все делается ручками. Во всяком случае так делал я. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
>Аппетит приходит во время еды?
так я процетировал еще первое свое сообщение ... так куда ручки ... ;) черкни пару строк (кода ;) ) о вопросе, если не сложно! |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Кода под рукой нет. Так только общие принципы
У меня там были свои заморочки, по скольку все дочерние окна были в подгружаемых dll и события дочерних окон не использовались А если не накладывать ограничений, то все очень просто. Кладешь на основную форму ControlBar. На ControlBar добавляешь ToolBar c кнопками главного окна. На дочерние окана кладешь ToolBar cо своими кнопками. Для дочернего окна определяешь обработчики
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
Спасибо за ответ, но как то это совсем ручками и ... "прямо в лоб" ;)
|
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
5 строк кода? А что такое тогда не "прямо в лоб"? Компонент из Тори?
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
не кипишуй ;) у собеседника все не так плохо
Если главная форма знает о MDIChild, то почему не все ;) Зачем мне из child-а говорить главной форме что ей делать, т.е. ToolBar1->Left = 100; а сначала узнавать у него этот Left!!!??? С меню через Merge получается, что-то на подобие этого я и хотел, а не позволять младшим копаться "в кишках" старших ;) Это я имел ввиду! P.S. Отвечу Вашими словами: А зачем же так волноваться и ... Вы Ответ смотри выше! Большой привет! |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
А я вроде и не волновался. Просто удивился. А чтобы в "кишках не ковырятся" есть стандартное с++ решаение, а именно у главной формы сделать соответствующий метод типа ToolBarMerge( TToolBar*). Есть и другой способ. Воспользоваться событием TMainMenu::OnChange на главной форме. Оно как раз будет срабатывать при слиниянии меню. И на него повесить соответ свующий код.
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
Ok!
;) |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |