|   |   | 
| 
 | Пауза в программе | ☑ | ||
|---|---|---|---|---|
| 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 | 
        То есть как обработка ожидания перепрыгивает секунды?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |