![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не срабатываю методы OnClose и OnCloseQuery [WinXP]
RU-mata © (2010-03-14 18:41:00)Такая проблема:
Не срабатывают методы OnClose и OnCloseQuery
при закрытие формы через панель задач
(правый клик на вкладке программы в панели задач,
пунки "Х Закрыть Alt+F4" )
При стандартном заыкрытии формы
(клик на Х в правом верхнем углу формы
или Alt-F4) методы OnClose и OnCloseQuery срабатывают как положено.
Подскажите в чём может быть дело.
Спасибо.
evvcom (2010-03-19 11:54:00) [1]Сань, ну ты крут! :)))
Rouse_ (2010-03-19 11:16:00) [2]
> Только, по-моему, диспетчер задач не применяет сразу терминирование,
> а пытается все-таки закрыть процесс корректно
Это если снимать с закладки "приложения", я обычно работаю из закладки "процессы" :)
evvcom (2010-03-19 10:41:00) [3]
> При терминировании это монопенисюально - висит он или нет :)
При терминировании согласен - моно :)
Только, по-моему, диспетчер задач не применяет сразу терминирование, а пытается все-таки закрыть процесс корректно, и только если процесс не хочет по-доброму, тогда только идет на крайние меры, получив согласие от пользователя.
Вариант (2010-03-19 06:59:00) [4]
> Германн © (19.03.10 02:51) [8]
> Это, блин, программа работающая с СОМ-портом. В синхронном
> режиме. А значит с доппотоками.
1) Работать асинхронно
или
2) Выставить разумные тайм-ауты
Первый метод работает в любом случае, проблем с "висит" нет.
Второй возможно (не проверял) все равно будет иметь проблемы при использовании WaitCommEvent(если таковой вызов есть),
но ReadFile и WriteFile при наступлении тайм-аутов вернут управление .
Германн (2010-03-19 02:51:00) [5]
> Rouse_ © (18.03.10 18:17) [7]
>
>
> > evvcom © (18.03.10 17:51) [6]
> >
> >
> > > Процессу и "пикнуть не дозволяется". :)
> >
> > Ну это если он повис, то да :)
>
> При терминировании это монопенисюально - висит он или нет
> :)
>
Хорошо звучит.
Но вот Саш. Что делать если он "висит"? И диспетчер задач не может его "убить"?
Это не вирус, не "зловредная программа".
Это, блин, программа работающая с СОМ-портом. В синхронном режиме. А значит с доппотоками.
Rouse_ (2010-03-18 18:17:00) [6]
> evvcom © (18.03.10 17:51) [6]
>
>
> > Процессу и "пикнуть не дозволяется". :)
>
> Ну это если он повис, то да :)
При терминировании это монопенисюально - висит он или нет :)
evvcom (2010-03-18 17:51:00) [7]
> Процессу и "пикнуть не дозволяется". :)
Ну это если он повис, то да :)
Германн (2010-03-15 01:36:00) [8]
> при терминировании процесса, OnCloseQuery стесняется выполняться.
>
> <Цитата
Какое там стесняется! Процессу и "пикнуть не дозволяется". :)
Rouse_ (2010-03-15 00:02:00) [9]ЗЫ: проверил, Alt+А4 сработал в обоих случаях...
Rouse_ (2010-03-15 00:00:00) [10]
> Не срабатывают методы OnClose и OnCloseQuery
> при закрытие формы через панель задач
Телепатически вижу что панель задач - это диспетчер процессов (Task Manager) на закладке Процессы (Processes). Если я правильно прочитал вводную, то, при терминировании процесса, OnCloseQuery стесняется выполняться.
Fenik (2010-03-14 22:30:00) [11]> Всё работает.
D7, WinXP SP3.
Fenik (2010-03-14 22:28:00) [12]Ищи у себя ошибку. Всё работает.