Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.17;
Скачать: CL | DM;

Вниз

Уничтожение последней MDIChild-формы   Найти похожие ветки 

 
zorik ©   (2009-11-24 10:11) [0]

Что-то туплю. Как отследить уничтожение последней MDIChild-формы. Есть свойство MDIChildCount для главной формы. Но когда его использовать. Есть ли в главной форме событие типа OnChildClose?


 
Jeer ©   (2009-11-24 10:20) [1]


> Как отследить уничтожение последней MDIChild-формы.


А зачем ? Цель какая ?
Если в главной форме надо что-то делать с child-формами, вот тут и проверяй на mdichildcount.


 
zorik ©   (2009-11-24 10:21) [2]

для активации/деактивации пунктов меню


 
Jeer ©   (2009-11-24 10:30) [3]

Правильнее проверять доч.форму на существование:
если нет- создавать, если уже есть - активировать и на передний план.


 
Григорьев Антон ©   (2009-11-24 10:31) [4]

Вообще-то у главной формы меню должно быть своё, у дочерней - своё. При активации MDI-окна эти два меню автоматически объединяются на основании значений свойств TMenuItem.GroupIndex, а при закрытии последнего окна автоматически останется только меню главной формы. И никаких событий ловить не надо.


 
Jeer ©   (2009-11-24 10:32) [5]

Ну если уж совсем приспичило - при закрытии каждой чайлд-формы посылать сообщение в главную и по приему делать нужные действия.


 
Jeer ©   (2009-11-24 10:34) [6]


> а при закрытии последнего окна автоматически останется только
> меню главной формы.


Скорее всего у него в меню главной формы есть пункты создания дочерних, вот он и хочет активировать/дезактивировать их по факту наличия или отсутствия доч.форм.


 
zorik ©   (2009-11-24 10:40) [7]


> Григорьев Антон ©   (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, если это последняя форма. ИМХО это неправильно


 
zorik ©   (2009-11-24 10:44) [8]

У меня на главной форме есть акции (TActionManager) для работы с дочерными формамы. Все дочерные формы одинаковые. Раньше, когда использовал TMainMenu, я создавал MDI-приложения и не было проблем, но с появлением TActionManager и TActionMainMenuBar (TActionToolBar) появились траблы, не исключаю, что полностью не разобрался с их использованием



Страницы: 1 вся ветка

Текущий архив: 2010.01.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1258233190
Cerberus
2009-11-15 00:13
2010.01.17
Кому не жалко инвайта на google wave?


15-1258398854
_
2009-11-16 22:14
2010.01.17
Клавиатура отказывает.


2-1258720030
Andrewtitoff
2009-11-20 15:27
2010.01.17
VBA => Delphi


2-1257762982
Zalm
2009-11-09 13:36
2010.01.17
ПРоблема с формой в длл


2-1259046700
zorik
2009-11-24 10:11
2010.01.17
Уничтожение последней MDIChild-формы