![]() |
![]() |
![]() |
|
Пауза в программе | ☑ | ||
---|---|---|---|---|
0
Надо работать
20.04.10
✎
18:28
|
Нужна пауза (например секунд 20), с возможностью прерывания, но без загрузки процессора
Такой вариант не дает прервать процесс // =============================== Процедура Sleep(Миллисекунд) Экспорт ИмяФайла=КаталогПользователя()+"sleep.vbs"; FSO=СоздатьОбъект("Scripting.FileSystemObject"); Текст=FSO.OpenTextFile(ИмяФайла,2,1); Текст.WriteLine("wscript.sleep "+Миллисекунд); Текст.Close(); cmdLine="wscript.exe """+ИмяФайла+""""; WshShell=СоздатьОбъект("WScript.Shell"); WshShell.Run(cmdLine, 0, -1); КонецПроцедуры //Sleep Для Инд=0 По Ждать Цикл Состояние(Сообщение+" (осталось "+(Ждать-Инд)+" сек.)"); sleep(1000); КонецЦикла; |
|||
1
FN
20.04.10
✎
18:30
|
ОбработкаОжидания + Кнопка "Отмена" на форме
|
|||
2
Aswed
20.04.10
✎
18:32
|
Цикл от 1 до 1000000
ЗЫ Вторую цифру менять в зависимости от необходимого времени паузы. |
|||
3
Шапокляк
20.04.10
✎
18:33
|
Можно какое-нибудь предупреждение выводить с таймаутом 20 секунд, но все равно программа не даст что-то сделать во время паузы
|
|||
4
Fragster
гуру
20.04.10
✎
18:34
|
Вопрос("Прервать?".......,"Да+Нет",20);
|
|||
5
Fragster
гуру
20.04.10
✎
18:35
|
ну и в цикл завернуть, чтобы при «нет» продолжала ждать
|
|||
6
Жан Пердежон
20.04.10
✎
18:35
|
Вопрос(<Текст_вопроса>,<Режим>,<Таймаут>)
Предупреждение(<Текст_сообщения>,<Таймаут>) |
|||
7
dk
20.04.10
✎
18:37
|
один я в белом ))
ввестистроку() |
|||
8
Надо работать
20.04.10
✎
18:40
|
(6) Насколько я помню, подобный код грузит процессор
|
|||
9
Ковычки
20.04.10
✎
18:42
|
(7) плюспяцот, остальные варианты в топку
|
|||
10
Ёпрст
гуру
20.04.10
✎
18:42
|
Что, всё настолько быстро работает, что нужно притормозить?
:) |
|||
11
Kreont
20.04.10
✎
19:11
|
Код частично не мой, де то тут и взял :)
Перем ПаузаМілісекунд; // Пауза під час виконання Функция sleep(ms) сек=цел(ms/1000); ВвестиСтроку(ms, "Пауза в мілісекундах", 100, 0, сек); Возврат Число(ms); КонецФункции ПаузаМілісекунд = 2000; Потом в цикле де надо тормознуть: ПаузаМілісекунд = sleep(ПаузаМілісекунд); В таком варианте можно паузу динамично менять походу +/- и не глючит |
|||
12
sapphire
20.04.10
✎
19:51
|
Пердупреждение( ) вроде тоже с паузой
|
|||
13
Ковычки
20.04.10
✎
21:05
|
(12) с вечной, если чо
|
|||
14
Torquader
20.04.10
✎
23:49
|
С диалогом бывают проблемы - если свернуть окно, то время в диалоге не идёт, и он закроется только после активизации программы.
|
|||
15
smaharbA
21.04.10
✎
06:38
|
с ввестистроку не бывает
|
|||
16
DrZombi
гуру
21.04.10
✎
08:11
|
+(0)ВК 1С++ объект "Система"
Метод Уснуть Sleep Синтаксис: Уснуть(КоличествоМиллисекунд) Назначение: Делает паузу путем вызова системной функции Sleep(КоличествоМиллисекунд). Параметры: КоличествоМиллисекунд - тип: Число. . Возвращаемое значение: |
|||
17
Андрюха
21.04.10
✎
08:17
|
Как вариант, который еще не озвучили, - таймер FormEx
|
|||
18
План счетов
21.04.10
✎
08:25
|
как вариант:
для паузы менее 60 сек. //_____________________________________________________________________________ Процедура Задержка(Врем, Текст = "Ожидание") Экспорт // Врем д.б. не более 60 сек СекундыТекущие = Число(Прав(Строка(ТекущееВремя()),2)); Секунды_С_Задержкой = СекундыТекущие + Врем; Если Секунды_С_Задержкой>60 Тогда Секунды_С_Задержкой = Секунды_С_Задержкой - 60; КонецЕсли; Если Секунды_С_Задержкой>=60 Тогда Секунды_С_Задержкой = Врем; КонецЕсли; Пока 1=1 Цикл ПрошлоСекунд = Число(Прав(Строка(ТекущееВремя()),2)) - СекундыТекущие; Состояние(Текст+" прошло "+Врем+" секунд, "+ПрошлоСекунд+" сек."); Если Число(Прав(Строка(ТекущееВремя()),2)) = Секунды_С_Задержкой Тогда Прервать; КонецЕсли; КонецЦикла; Состояние(" "); КонецПроцедуры |
|||
19
DrZombi
гуру
21.04.10
✎
08:40
|
Варианты с циклом - это не кошерно + 100% загрузка проца :)
|
|||
20
Надо работать
21.04.10
✎
11:30
|
(17) Во-во, я подозревал что что-то такое в формексе есть.
Со вводом строки все таки не сильно красиво получается |
|||
21
Надо работать
21.04.10
✎
11:34
|
А стандартная ОбработкаОжидания секунды перепрыгивает, падла :)
|
|||
22
Эльниньо
21.04.10
✎
11:48
|
Приблуду Ромикса попробуй, чтобы проц не грузить.
|
|||
23
Kreont
21.04.10
✎
11:52
|
(20) А че с вводом строки некрасиво? Зато есть возможность менять время задержки динамично, другие способы такой возможности не дадут :)
|
|||
24
smaharbA
21.04.10
✎
13:18
|
еще один метод
|
|||
25
Надо работать
21.04.10
✎
13:36
|
(24) Не прерывается
|
|||
26
smaharbA
21.04.10
✎
13:37
|
(25) в курсе, просто как вариант паузы
|
|||
27
NS
21.04.10
✎
13:41
|
То есть как обработка ожидания перепрыгивает секунды?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |