Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2008, 06:56   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию До проги не доходит сигнал выгрузки операционной системы

Привет всем!
сталкнулся с такой проблемой: В главной форме приложения стоит обработчик событий onClose всё работает прекрастно! Но вот если я перезагружаю/выключаю комп при включённой рограмме, то onClose главной формы видемо не выполняеться , что делать?
Altera вне форума Ответить с цитированием
Старый 29.08.2008, 08:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Понятное дело. Нужно ловить сообщение WM_QUERYENDSESSION
Тут уже выкладывались примеры так что поиск - форева )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2008, 11:40   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Отловить сообщение о завершении работы операционной систем можно так:

Код:
 private
    { Private declarations }
    Procedure WMQueryEndSession(Var Message: TMessage);
    Message WM_QUERYENDSESSION;
-------
Procedure TForm1.WMQueryEndSession(Var Message: TMessage);
Begin
//Здесь выши действия
Message.Result:=1;
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 30.08.2008, 12:55   #4
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

У меня к проге подключена библиотека
Код:
dll := loadLibrary(pChar(extractFilePath(application.exeName)+'имя библиотеки.dll'));
Когда приложение завершает работу, оно должно
1) сохранить свои пораметры.
2) запустить процедуру из dll которая сохраняет пораметры формы из dll.
3) освободить память выделенную под библиотеку (freeLibrary(dll)).
Мне кажеться, что форма в болиотеке усложняет дело...
Кстате, а на счёт 3-его пункта, это обезательно если проложение и так завершает работу?
Altera вне форума Ответить с цитированием
Старый 30.08.2008, 13:13   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Кстате, а на счёт 3-его пункта, это обезательно если проложение и так завершает работу?
Мне кажется это не обязательно делать. Ведь когда приложение завершится, то память освободится сама.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 30.08.2008, 13:38   #6
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
Мне кажется это не обязательно делать.
ИМХО лучше ручками все закрыть.
Gorychev вне форума Ответить с цитированием
Старый 30.08.2008, 18:03   #7
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Всё сделал, работает! Тема закрыта! Спасибо ребята!
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация операционной системы на Delphi r1p88 Помощь студентам 7 27.05.2008 00:04
сигнал WindowsBeep ben95 Общие вопросы Delphi 8 13.05.2008 19:12
Какая программа подходит лучше всего для написании операционной системы? Briz Операционные системы общие вопросы 6 26.10.2007 11:12
как программно изменить язик ввода в операционной системе Миша Win Api 1 17.09.2007 16:38