Поиск:

Ответ в темуСоздание новой темы Создание опроса
> контекстнозависимое меню ... как реализовать контекстнозависимое меню 
:(
    Опции темы
korotkov
Дата 17.10.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



как реализовать "контекстнозависимое" меню?

т.е. меню, элементы которого зависят от "типа" активного окна, полностью раскрытого (wsMaximized), элементы меню дочернего окна добавляются к элементам меню основного окна ...

может технология как-то иначе называется!? таким же образом в некоторых программах обходятся и с панелью "инструментов"!!!

подскажите как реализуется, мне кажется это должно быть с минимумом кода ...

Это сообщение отредактировал(а) korotkov - 17.10.2006, 21:48
PM MAIL WWW ICQ   Вверх
BreakPointMAN
Дата 18.10.2006, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 6
Всего: 24



Если работаешь в Borland C+ Builder, читай во встроенной справке среды описание компонента TPopupMenu, а также воспользуйся поиском по форуму, ибо подобные темы уже обсуждались.


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
korotkov
Дата 18.10.2006, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



еслибы ты прочитал внимательно исходное сообщение, то не писал бы глупости нравоучительным тоном!!!

для таких пИсак я еще ж хотел приписать, не контекстное меню (Popupmenu), а "контекстнозависимое" ... основное меню главного окна, которое меняет список своих SubMenu ...

знал что найдется "мудрец" не умеющий читать, а только пИсать ;)

набрал я поиском, по твоему "совету" фразу "контекстнозависимое меню" и что я увидел: свой же вопрос ... и все!

В том то и вопрос, что я не знаю как эта "возможность" в программах называется.

... читай вопрос прежде чем нравоучать, дурная привычка!!!

ну и конечно же Borland C++ Builder? я ж раздел правильно выбрал ;)
Модератор: А зачем же так волноваться и грубить. Вас не поняли и да и я бы непонял. Нужно правильно задавать вопросы и только. Ответ ниже 

Это сообщение отредактировал(а) Vyacheslav - 18.10.2006, 10:12
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 18.10.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



1. В MDI модели слияние (Merge) поддерживается автоматически. Достаточно на дочернюю форму добавиль свое TMainMenu
2. Если Вы не используете MDI модель, то слияние можно осуществить вручную
Смотрите хелп TMainMenu::Merge



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korotkov
Дата 18.10.2006, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



> TMainMenu::Merge
Спасибо

Из вопроса то можно было понять что речь идет не о PopupMenu smile

Этот вопрос как раз из той серии, что еслиб я смог сформулировать четко вопрос, то и ответ бы нашел!!! Может подскажете как должен был звучать вопрос ;)

А может еще:
>таким же образом в некоторых программах обходятся и с панелью "инструментов"!!!
ToolBar или еще какой-нибудь компонент может такоеже позволить с кнопками ...
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 18.10.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



 Э...  smile  Аппетит приходит во время еды?
Тут сложнее. Все делается ручками. Во всяком случае так делал я.


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korotkov
Дата 18.10.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



>Аппетит приходит во время еды?
так я процетировал еще первое свое сообщение ...

так куда ручки ... ;)

черкни пару строк (кода ;) ) о вопросе, если не сложно!

PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 18.10.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Кода под рукой нет. Так только общие принципы
У меня там были свои заморочки, по скольку все дочерние окна были в подгружаемых dll и события дочерних окон не использовались
А если не накладывать ограничений, то все очень просто. Кладешь на основную форму
ControlBar. На ControlBar добавляешь ToolBar c кнопками главного окна. На дочерние окана кладешь ToolBar cо своими кнопками. Для дочернего окна определяешь обработчики
Код

void __fastcall TForm2::FormActivate(TObject *Sender)
{
    ToolBar1->Parent  =  Form1->ControlBar1;
    ToolBar1->Left = 100; // определяется концом тулбара основного окна 
    ToolBar1->Visible = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormDeactivate(TObject *Sender)
{
      ToolBar1->Visible = false;
     ToolBar1->Parent = this;

}









--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korotkov
Дата 18.10.2006, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



Спасибо за ответ, но как то это совсем ручками и ... "прямо в лоб" ;)



PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 18.10.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



5 строк кода? А что такое тогда не "прямо в лоб"? Компонент из Тори?


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korotkov
Дата 18.10.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



не кипишуй ;) у собеседника все не так плохо smile

Если главная форма знает о MDIChild, то почему не все ;)

Зачем мне из child-а говорить главной форме что ей делать, т.е. ToolBar1->Left = 100; а сначала узнавать у него этот Left!!!???

С меню через Merge получается, что-то на подобие этого я и хотел, а не позволять младшим копаться "в кишках" старших ;)

Это я имел ввиду!

P.S. Отвечу Вашими словами:
А зачем же так волноваться и ... Вы smile не поняли и ...
Ответ смотри выше!

Большой привет! smile
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 18.10.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



А я  вроде и не волновался. Просто удивился. А чтобы в "кишках не ковырятся" есть стандартное с++ решаение, а именно у главной формы сделать соответствующий метод типа  ToolBarMerge( TToolBar*). Есть и другой способ. Воспользоваться событием TMainMenu::OnChange на главной форме. Оно как раз будет срабатывать при слиниянии меню. И на него повесить соответ свующий код.
 


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korotkov
Дата 18.10.2006, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



Ok!

;)
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0514 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.