|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|
MDI приложение22.02.2011, 13:18. Показов 8536. Ответов 14
Метки нет (Все метки)
Добрый день.
1. Создал MDI приложение (из стандартного шаблона создал заготовку). 2. Разработал пару форм, которые вызываются через меню/тулбар. 3. Кинул на главную форму TActionList. Создал 2 события вызова необходимых форм (дабы не писать обработчики кликов на тулбаре и меню). 4. Все открывается как нужно. Теперь проблемы: 1. Мне необходимо чтобы при открытии моих форм в основном меню добавлялись новые пункты и подпункты меню. 2. При закрытии форм новые пункты соответственно убирались - то есть все становилось как и было. Подскажите, пожалуйста, как все это организовать?
0
|
|
| 22.02.2011, 13:18 | |
|
Ответы с готовыми решениями:
14
Сделать многооконное приложение MDI MDI приложение. Активация дочерних окон MDI приложение - Открытие окон при запуске программы |
|
|
|||||||
| 22.02.2011, 14:44 | |||||||
delete удаляет.
0
|
|||||||
|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|
| 22.02.2011, 16:33 [ТС] | |
|
Спасибо за ответ.
Насколько я понял добавленный пункт меню будет всегда отображаться не зависимро от того активно окно (которое его создало) или нет. А механизма который будет сам отслеживать видимость меню под каждое окно в Buildere нет?
0
|
|
|
|
||
| 22.02.2011, 16:55 | ||
0
|
||
|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|||||||
| 22.02.2011, 17:30 [ТС] | |||||||
|
1. Есть главное меню содержащее 2 итема: Fom1 Form2 2. В обработчике обоих пунктов написал приблизительно следующее:
======================================== = Пример меню: Файл Изменить Окна Помощь Новый Вырезать Каскад О программе... Открыть Копировать ..... Закрыть Вставить -------- Выход Так вот хочу чтобы при создании окна Form1 в основное меню добавлялись след пункты меню: Файл Изменить Окна Помощь Form1 Новый Вырезать Каскад О программе... MenuItem1 Открыть Копировать ..... MenuItem2 Закрыть Вставить ....... -------- Выход Так вот хочу чтобы при создании окна Form2 в основное меню добавлялись след пункты меню: Файл Изменить Окна Помощь Form2 Новый Вырезать Каскад О программе... MenuItem1 Открыть Копировать ..... MenuItem2 Закрыть Вставить ....... -------- Выход При закрытии всех окон меню имело прежний вид. Вот кажется в примерах описал что хотел.
0
|
|||||||
|
|
||
| 22.02.2011, 18:05 | ||
0
|
||
|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|
| 22.02.2011, 18:26 [ТС] | |
|
Да вот я и спрашиваю как это все правильно делается - по науке.
0
|
|
|
|
|||||||||||
| 22.02.2011, 19:00 | |||||||||||
1
|
|||||||||||
|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|
| 22.02.2011, 19:26 [ТС] | |
|
А вот в функции "FuncOnActivate" необходимо писать вот эти самые манипуляции с меню - включать отключать и так далее?
И еще может просто создать меню на главной форме полное (для всех форм) , а затем при активации просо их открывать или закрывать?
0
|
|
|
|
||
| 22.02.2011, 20:56 | ||
|
В предыдущем посте немного неправильно сделал.
0
|
||
|
|
|
| 23.02.2011, 02:46 | |
|
в ActionList сделать разные наборы меню и активировать при потребности без гемора, или в ІНІ сделать секции [FullMenu], [ShortMenu] и т.д., и грузить секции по желанию.
0
|
|
|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|
| 23.02.2011, 12:02 [ТС] | |
|
Спасибо за консультацию. Но вот нарыл в инете решение данного вопроса. Все очень просто - как все гениальное. Хочу поделиться решением:
1. На дочерних окнах в построителе строишь меню такое какое тебе нужно (дополнительные пункты) 2. В обьекте TMenuItem (заголовок меню) устанавливаешь свойство GroupIndex допустим в значение 1. 3. Запускаешь программу открываешь дочерние окна и все действия с меню делает интерфес программы - ничего писать по обработкам не нужно.
0
|
|
|
|
|||
| 23.02.2011, 12:13 | |||
.
0
|
|||
|
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
|
|
| 23.02.2011, 13:36 [ТС] | |
|
Насчет правильности постановки вопросов спорить не буду - старался описать суть проблемы даже в примерах (см. выше).
А за консультации большое спасибо.
1
|
|
|
|
|
| 23.02.2011, 13:48 | |
|
Спросить можно было проще, типа "как создать меню в дочерних формах MDI приложения", и ответ, скорее всего, не понадобился бы
![]() за то, что решил сам - (+) .
0
|
|
| 23.02.2011, 13:48 | |
|
Помогаю со студенческими работами здесь
15
MDI MDI и Ribbon MDI Форма MDI интерфейс MDI интерфейс Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|