Страница 1 из 1
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 22 Октябрь 2016, 22:06
Chacanov
Используется Clarion 6.1.
Есть необходимость в блокировке закрытия приложения по крестику (в правом верхнем углу экрана приложения.
Программу нужно закрывать только через меню.
Так как при работе, если случайно нажать на этот крестик , программа закрывается.
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 22 Октябрь 2016, 22:33
Дед Пахом
Кажется так:
При закрытии приложения (AppFrame) срабатывает Event:CloseWindow. Заводим переменную EnableClose, присваиваем ей TRUE только при выборе пункта меню "Exit", а в Event:CloseWindow пишем if not EnableClose then cycle end.
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 22 Октябрь 2016, 22:43
Игорь Столяров
Отключить опции System Menu и убрать иконку окна. Нет кнопки с крестиком - нет проблемы (нечего нажимать случайно).

Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 22 Октябрь 2016, 22:49
Chacanov
Большое спасибо. Получилось.
Изначально пробовал опцию System Menu отключить, не получалась, так как иконка окна была.
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 22 Октябрь 2016, 23:09
Игорь Столяров
Примерно такое же пожалуйста.

Тут в выходные специально в этот крестик фиг попадешь, а Вы говорите случайно ....

Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 23 Октябрь 2016, 14:40
kreator
AppFrame без иконки и системного меню? Извращение какое-то! А чем этот крест-то не угодил?
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 23 Октябрь 2016, 18:21
finsoftrz
kreator писал(а): AppFrame без иконки и системного меню? Извращение какое-то! А чем этот крест-то не угодил?
Безусловно
Закрытие приложения из фрейма можно отловить в дочернем окне по событию EVENT:CloseDown. Например, пользователь что-то модифицирует в документе, переключился в другую нитку, забыл и жмет закрыть приложение. Чтобы он не потерял результаты своей работы, проверяем, что он что-то менял в документе, и на событии EVENT:CloseDown говорим CYCLE, предварительно подняв окно над другими через 0{Prop:Active}=True. Попутно надо отследить, что это не режим административного сброса пользователя, а он сам нажал крест на фрейме. У меня примерно так это разруливается...
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 10 Ноябрь 2016, 20:11
Chacanov
А чем этот крест-то не угодил?
А тем, что с программой (Тестирование) работают специалисты медицинских специальностей (средний персонал).
Целый класс - 15-30 компов. И естественно встречаются такие что мышкой случайно нажимают на Крестик - закрытия приложения. В итоге тестирование завершается. Конечно в программе реализована возможность продолжения тестирования с прерванного места. Но такие случаи раздражают некоторых из обслуживающего персонала.
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 10 Ноябрь 2016, 20:54
ingasoftplus
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 10 Ноябрь 2016, 23:12
kreator
Chacanov писал(а):А тем, что с программой (Тестирование) работают специалисты медицинских специальностей (средний персонал).Целый класс - 15-30 компов. И естественно встречаются такие что мышкой случайно нажимают на Крестик - закрытия приложения. В итоге тестирование завершается. Конечно в программе реализована возможность продолжения тестирования с прерванного места. Но такие случаи раздражают некоторых из обслуживающего персонала.
Так бы сразу и сказал. В Embed фрейма на событие "CloseWindow" до Parent Call пишете, например:
Код: Выделить всё
if message('Вы действительно хотите выйти из программы?','ВНИМАНИЕ!!!',ICON:Question,BUTTON:Yes+BUTTON:No,BUTTON:No)=BUTTON:No
return Level:Notify
end
И всё.
Как можно заблокировать закрытие приложения по крестику (в правом верхнем углу экрана приложения.
Добавлено: 29 Ноябрь 2016, 23:02
Игорь Столяров
О ! Нашел пример в тему на почившем в бозе KLARISOFT'е.
Проверил под C63 - вроде прикольно работает.
