Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не срабатываю методы 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]

Ищи у себя ошибку. Всё работает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо