Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Можно как-то отловить нажатие Esc? (число прочтений - 16226 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Можно как-то отловить нажатие Esc?
Ответ #30 - 15. Ноября 2007 :: 13:05
Печать  
Вообще-то это вопрос определения уровня гарантий безопасности относительно исключений.
По-сути - да, вопрос дизайна, но дизайн может быть и плохим и даже очень плохим.

В качестве зарядки можно попробовать продумать, как использовать что-то типа Сервис::СоздатьШрифт() безопасно относительно исключений (в том числе - прерыванию по ESC).
Внутри штатных обработок и внутри кода классов.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Можно как-то отловить нажатие Esc?
Ответ #31 - 05. Февраля 2008 :: 04:32
Печать  
Что-то я как-то не понял, на чем остановились? А можно добавить два события типа: ПриПрерыванииПоESC(число ФСО) и ПослеПрерыванияПоESC(число фДА_НЕТ)? и пусть тогда ответственность за их обработку ложится на разработчика... или я вообще не в теме?  Со сжатыми губами
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно как-то отловить нажатие Esc?
Ответ #32 - 30. Сентября 2008 :: 22:31
Печать  
Цитата:
Что-то я как-то не понял, на чем остановились? А можно добавить два события типа: ПриПрерыванииПоESC(число ФСО) и ПослеПрерыванияПоESC(число фДА_НЕТ)? и пусть тогда ответственность за их обработку ложится на разработчика... или я вообще не в теме?  Со сжатыми губами


Представь себя разработчиком. Есть у тебя класс. В классе есть метод, который работает долго.

Пользователь нажал эскейп.

Работа метода прервалась? Если не прервалась, то как управление переедет в код обработчика?
ОК, работа длинного метода прервалась. Работает перехватчик эскейпа.
Этот перехватчик что-нибудь знает о том, какой метод, какого класса выполнялся, когда нажали эскейп? Перехватчик эскейпа знает обо всем стеке вызовов?
Перехватчик должен иметь возможность отменить нажатие эскейпа и продолжить работу прерванного метода?
  
Наверх
www  
IP записан
 
Alex_Bob
Full Member
***
Отсутствует



Сообщений: 136
Местоположение: Липецк
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно как-то отловить нажатие Esc?
Ответ #33 - 06. Октября 2008 :: 08:10
Печать  
Цитата:
Нужно управление типа "МаскироватьESC()" / "ДемаскироватьESC()", "ПолучитьСтатусESC()".


Я бы пожалуй проголосовал за такой вариант, если он будет работать и в модуле обработки и в классе. Хотя и без использования классов это была бы полезная фича.
  

Необходимо время, чтобы восстановить хаос. (с) Дж. Буш (младший)
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать