![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уничтожение последней MDIChild-формы
zorik © (2009-11-24 10:11:00)Что-то туплю. Как отследить уничтожение последней MDIChild-формы. Есть свойство MDIChildCount для главной формы. Но когда его использовать. Есть ли в главной форме событие типа OnChildClose?
zorik (2009-11-24 10:44:00) [1]У меня на главной форме есть акции (TActionManager) для работы с дочерными формамы. Все дочерные формы одинаковые. Раньше, когда использовал TMainMenu, я создавал MDI-приложения и не было проблем, но с появлением TActionManager и TActionMainMenuBar (TActionToolBar) появились траблы, не исключаю, что полностью не разобрался с их использованием
zorik (2009-11-24 10:40:00) [2]
> Григорьев Антон © (24.11.09 10:31) [4]
Оно так было, но с TActionManager, TActionMainMenuBar и TActionToolBar оно некоректно работает. Если на дочерной использовать TActionManager и TActionMainMenuBar (TActionToolBar) то меню будет только на первой из созданых ChildForm. А переходить назад на TMainMenu не хочется.
Еще попробую, как вы говорите, с TMenuItem.GroupIndex поэксперементировать, но TActionManager наверно все-же нужен только один на главной форме.
> Jeer © (24.11.09 10:32) [5]
Тогда нужно с задержкой, потому-что в момент уформа еще есть и количество детей равное 1, если это последняя форма. ИМХО это неправильно
Jeer (2009-11-24 10:34:00) [3]
> а при закрытии последнего окна автоматически останется только
> меню главной формы.
Скорее всего у него в меню главной формы есть пункты создания дочерних, вот он и хочет активировать/дезактивировать их по факту наличия или отсутствия доч.форм.
Jeer (2009-11-24 10:32:00) [4]Ну если уж совсем приспичило - при закрытии каждой чайлд-формы посылать сообщение в главную и по приему делать нужные действия.
Григорьев Антон (2009-11-24 10:31:00) [5]Вообще-то у главной формы меню должно быть своё, у дочерней - своё. При активации MDI-окна эти два меню автоматически объединяются на основании значений свойств TMenuItem.GroupIndex, а при закрытии последнего окна автоматически останется только меню главной формы. И никаких событий ловить не надо.
Jeer (2009-11-24 10:30:00) [6]Правильнее проверять доч.форму на существование:
если нет- создавать, если уже есть - активировать и на передний план.
zorik (2009-11-24 10:21:00) [7]для активации/деактивации пунктов меню
Jeer (2009-11-24 10:20:00) [8]
> Как отследить уничтожение последней MDIChild-формы.
А зачем ? Цель какая ?
Если в главной форме надо что-то делать с child-формами, вот тут и проверяй на mdichildcount.