|
|
Как прервать цикл без остановки выполнения кода по нажатию комбинации клави |
☑ |
|
0
Господин ПЖ
27.06.07
✎
12:23
|
ОбработкаПрерыванияПользователя() - прерывает выполнение кода обработки. Никто не находил способ прервать цикл и просто выйти из функции/процедуры?
|
|
|
1
asady
27.06.07
✎
14:55
|
(0) засунь
ОбработкаПрерыванияПользователя() в Попытку/Исключение.
|
|
|
2
Господин ПЖ
27.06.07
✎
15:00
|
(1) Пробывал - не взлетело.
|
|
|
3
asady
27.06.07
✎
15:06
|
(2) у меня взлетело. Покажи свой код.
|
|
|
4
Господин ПЖ
27.06.07
✎
15:07
|
(3)
Процедура КнопкаВыполнитьНажатие(Кнопка)
лч = 0;
Пока 1 = 1 Цикл
попытка
ОбработкаПрерыванияПользователя();
Исключение
КонецПопытки;
лч = лч + 1;
Сообщить("" + лч);
КонецЦикла;
Сообщить("!");
КонецПроцедуры
Тыкаю в клаву и в конце "!" - не сообщает.
|
|
|
5
TormozIT
гуру
27.06.07
✎
15:19
|
Да, в платформе не предусмотрен такой механизм.
А нужно всего лишь функцию ПрерватьОбработку() типа Булево, которая проверяет нажатие CTRL+Break
|
|
|
6
Господин ПЖ
27.06.07
✎
15:22
|
(5) ОбработкаПрерыванияПользователя() и так действует на всю обработку. речь идет о прерывании длинного цикла по требованию пользователя без остановки всего выполнения.
|
|
|
7
DrWatson
27.06.07
✎
15:22
|
Никогда не пробовал ОбработкаПрерыванияПользователя засовывать в попытку. Проверьте, он в исключение заходит?
|
|
|
8
Господин ПЖ
27.06.07
✎
15:25
|
(7) Неа. не заходит.
|
|
|
9
DrWatson
27.06.07
✎
15:30
|
(8) Плохо, значит не работает. Но можно попробовать так:
Попытка
Цикл
ОбработкаПрерыванияПользователя
КонецЦикла
Исключение
КонецПопытки
Сообщить("!");
|
|
|
10
simol
27.06.07
✎
15:36
|
А если цикл вынести в отдельную обработку и там ОбработкаПрерыванияПользователя? Или тогда все обработки закроются?
|
|
|
11
asady
27.06.07
✎
15:38
|
(1)+ у меня в цикле стояло предупреждение("",1) для того, чтобы не было 100% загрузки проца - так вот из цикла никак не выходил - хотя я CTRL+BREAK жал очень ритмично.
- но хочу сказать заявление в (1) было поспешным - так пока не работает.
я бы еще попытался через загрузить обработчик ожидания и анализ буфера клавиатуры нештатными способами.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший