![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
закрытие программы
ymin © (2002-04-17 17:36:00)Как сделать, чтобы при нажатии на x в правом верхнем углу какой-нибудь формы проекта, закрыть всю программу?
Song (2002-04-18 08:33:00) [1]Тока не забывайте, что могут быть открыты другие формы.. Иногда если закрыть MainForm, они могут оставаться, встречался я с этим. Здесь решение одно - закрывайте все остальные формы, а потом - главную. Я делал так, когда нужно было закрыть клиента удалённо.
kull (2002-04-17 23:24:00) [2]Да чего вымахиваться, Song прав: MainForm.Close, и неча мудрить,
Halt-ы какие-то. Вы еще Windows перезапустите, чтоб неповадно было окна закрывать. :)
Agent Smith (2002-04-17 18:56:00) [3]Можно так: обрабатываем событие возможности закрытие формы и в нем прописываем закрытие осталбных окон.
Андрей Сенченко (2002-04-17 18:33:00) [4]Я например совсем по-другому поступил бы : открывал бы модальной ту форму, с закрытия которой по "х в углу" нужно гасить программу. А по нужному ModalResult - повесил бы процедурку закрытия, которая спокойно погасит все созданные объекты и процессы и закроет программку, предварительно спроси о такой необходимости.
Song (2002-04-17 18:30:00) [5]MainForm.Close освобождает все автоматически созданные объекты. Те объекты, которые создали Вы, Вы и должны удалить. Если Вы это забыли сделать, за Вас это сделает система.
Если быть точным то MainForm.Close вызывает Application.Terminate но не Halt!!!! Terminate же генерирует PostQuitMessage с кодом 0. А это уже функция АПИ.
Андрей Сенченко (2002-04-17 18:24:00) [6]>> Song © (17.04.02 18:09)
Ответ Безумной Рыбы - конечно не ответ Мудрого Оленя ...
Но полностью соответствует ответу.
Кстати.. интересный вопрос возникает : MainForm.Close освободит ли ВСЮ память и уничтожит ли ВСЕ объекты ?
Song (2002-04-17 18:09:00) [7]Halt завершает работу, но не уничтожает ни одного созданного объекта, передавая эту задачу на командный процессор. Если Вы используете такие методы, то хотя бы не советуйте другим.
-=CrazyFish=- (2002-04-17 18:05:00) [8]Кто скажет, что Halt не завершит работу приложения пусть первый бросит в меня камень ;)
Song (2002-04-17 17:58:00) [9]2-=CrazyFish=- © (17.04.02 17:50)
Я Вам дам "halt"!
2ymin © (17.04.02 17:36)
MainForm.Close или WM_CLOSE,WM_QUIT
-=CrazyFish=- (2002-04-17 17:50:00) [10]Application.Terminate;
а можно
Halt;