|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.08.2011, 12:56 | #1 |
Подтвердите свой е-майл
Регистрация: 07.04.2007
Сообщений: 120
|
Закрытие дочерних MDI форм
Столкнулся с такой проблемой.
В MDI приложении открыто много дочерних окон. У каждой в CloseQuery выдается запрос на подтверждение закрытия формы. Если закрывать главную форму, то сначала вызываются обработчики CloseQuery дочерних и если хотя бы один из них возвращает false, то программа не закроется. Как можно сделать чтобы 1. При закрытии главной формы обработчики CloseQuery дочерних не выполнялись? 2. Или если выполняются то те окна в которых CloseQuery вернул true закрывались, даже если следующий обработчик вернул false? |
09.08.2011, 13:11 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ввести глобальную пнрнменную. Нач.знач = False. Перед закрытием гл.формы поместить True. Везде в CloseQuery анализировать значение этой переменной
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
09.08.2011, 13:32 | #3 |
Подтвердите свой е-майл
Регистрация: 07.04.2007
Сообщений: 120
|
"Перед закрытием гл.формы поместить True." как отследить закрытие главной формы, прежде чем сработают onCloseQuery дочерних?
|
09.08.2011, 13:33 | #4 |
Подтвердите свой е-майл
Регистрация: 07.04.2007
Сообщений: 120
|
|
09.08.2011, 13:58 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
OnCloseQuery главной формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 09.08.2011 в 14:03. |
09.08.2011, 14:07 | #6 | |
Подтвердите свой е-майл
Регистрация: 07.04.2007
Сообщений: 120
|
Цитата:
из Forms: Код:
|
|
09.08.2011, 14:13 | #7 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> OnCloseQuery главной формы вызывается после OnCloseQuery дочерних.
и это логично ) А что там с WM_CLOSE?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
09.08.2011, 14:32 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Протупил. Тогда как veniside подсказал - попробовать переопределить обработчик WM_CLOSE
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
09.08.2011, 14:39 | #9 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
В конце-концов если не нравится вариант с глобальной переменной (так и не понял почему), можно сделать так
Код:
|
09.08.2011, 14:46 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Та же проблема, что и OnCloseQuery главной формы
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 09.08.2011 в 14:54. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закрытие и открытие дочерних MDI окон приложения | chandrasecar | Общие вопросы Delphi | 4 | 16.05.2011 13:41 |
Закрытие всех дочерних форм | belarusfight | C# (си шарп) | 3 | 26.02.2011 15:06 |
Много дочерних форм... | L.A.M.E.R. | Общие вопросы Delphi | 4 | 03.08.2010 08:13 |
Расположение дочерних MDI окон слева-направо и сверху-вниз | Umdis | Общие вопросы Delphi | 2 | 30.11.2009 07:05 |
AlphaSkins. Как убрать скин с дочерних MDI Форм? | chandrasecar | Компоненты Delphi | 4 | 11.02.2009 20:06 |