|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.05.2011, 23:13 | #1 | |
Форумчанин
Регистрация: 01.12.2010
Сообщений: 140
|
Как вернуть старое разрешение экрана при критическом завершении программы?
Привет. Не знаю, как назвать правильно "критическое" завершение работы; я имею ввиду ту ситуацию, когда не выполняется ни FormClose, ни FormDestroy (в котором прописан вызов процедуры смены разрешения), то есть программа закрыта либо через диспетчер задач, либо в Delphi через Ctrl+F2, либо другим похожим методом. Сам код смены разрешения написан, в нём не нуждаюсь.
Цитата:
Последний раз редактировалось Asker13; 10.05.2011 в 23:26. |
|
10.05.2011, 23:18 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Destroy выполняется в любом случае. Кроме случая Exception.
При terminate не выполняется только 2 события это OnCanClose и OnClose. КАк вариант. Получайте и записывайте разрешения в переменые. Потом при исключении устанавливайте их. Как вариант есть такая штука как MadExcept кроме средства отлова исключений у него есть куча разных фич облегчающих жизнь. Далее там-же есть MadExceptHandler который выполнит действие в момент исключения. Все доки и сам сабж есть на http://madshi.net |
11.05.2011, 00:18 | #3 |
DelphiProger
Участник клуба
Регистрация: 14.11.2010
Сообщений: 1,023
|
не знаю как на практике и осуществимо ли,
но доумаю виндовс посылает сообщение окну для закрытия, вот в прием сообщения и надо вставлять код (WinAPI)
VirusN13
|
11.05.2011, 19:25 | #4 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Так если при вызове ChangeDisplaySettings стоит флаг CDS_FULLSCREEN, разрешение должно само обратно меняться, даже если прога вылетает. А если CDS_FULLSCREEN не стоит, то это нехорошо, тогда при уменьшении разрешения значки на рабочем столе съедут и всё такое.
|
11.05.2011, 20:05 | #5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Всегда есть и будут ситуации, при которых ваша программа вылетает. И нет никакой возможности выполнять при этом ваш код. Смиритесь с этим.
Вы можете попросить кого-то выполнять за вами очистку. Например, систему - как это указал Somebody.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
выполнение js кода при завершении программы на delphi | xamel87 | Общие вопросы Delphi | 1 | 08.05.2011 18:45 |
Как изменить разрешение экрана | lionman | Общие вопросы Delphi | 7 | 07.01.2011 12:45 |
Разрешение экрана. | MeTeOpA | Общие вопросы Delphi | 4 | 15.10.2010 03:33 |
Ошибка при завершении программы | _-Re@l-_ | Общие вопросы Delphi | 2 | 01.09.2010 21:32 |
как узнать разрешение экрана пользователя? | Juffin | Общие вопросы Delphi | 2 | 01.11.2009 21:10 |