|
Выход из цикла по нажатию клавиши
| ☑ |
0
Den_B12
04.10.16
✎
14:09
|
Всем привет.
В цикле крутятся презентации:
Пока 1 < 2 Цикл
...
ЗапуститьПриложение(ЭлементМассива.Имя,,Истина);
...
КонецЦикла
Как обработать нажатие на клавиатуре например ESC и завершить цикл?
|
|
1
Любопытная
04.10.16
✎
14:10
|
ОбработкаПрерыванияПользователя() Обрывает по Ctrl+Breack
|
|
2
Den_B12
04.10.16
✎
14:23
|
Ctrl+Breack не срабатывает, может не успевает из-за цикла. Пробую вот так
Пока 1<2 Цикл
Сообщить("1");
КонецЦикла
|
|
3
butterbean
04.10.16
✎
14:24
|
(2) вставь ОбработкаПрерыванияПользователя()
оно не может не успевать, оно просто ждет следующего шага
|
|
4
Den_B12
04.10.16
✎
14:24
|
Видимо надо как-то отловить средствами винды нажата ли клавиша или нет
|
|
5
Рэйв
04.10.16
✎
14:24
|
(2)А ты попробуй вот так:
Пока 1<2 Цикл
ОбработкаПрерыванияПользователя() ;
Сообщить("1");
КонецЦикла
|
|
6
Волшебник
модератор
04.10.16
✎
14:24
|
Пока Истина Цикл
ОбработкаПрерыванияПользователя()
<твои действия>
КонецЦикла
|
|
7
FIXXXL
04.10.16
✎
14:28
|
(0) по кнопе Отмена пиши служебный флаг, в цикле проверяй (и очищай) значение флага
|
|
8
Den_B12
04.10.16
✎
14:32
|
Пока 1<2 Цикл
ОбработкаПрерыванияПользователя() ;
Сообщить("1");
КонецЦикла
Да, так работает. А если так долго не получается поймать.
Пока 1 < 2 Цикл
ОбработкаПрерыванияПользователя() ;
ЗапуститьПриложение(ЭлементМассива.Имя,,Истина);
...
КонецЦикла
|
|
9
Ёпрст
04.10.16
✎
15:32
|
(8) всё правильно, ибо запускаемое приложение идёт вне цикла
|
|
10
cybfyv
04.10.16
✎
15:35
|
(7) у тебя приоложение перехватывает ввод и естественно что 1с не реагирует
|
|