Страница 1 из 2
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 15:05
				 pansoft
				Добрый день всем!
Задача такая: при нажатии кнопки отправляется запрос на сервер, ответ приходит через 1 до 5 минут(примерно).
Код: Выделить всё
Send() ! отправка запроса на сервере
loc:res=''
LOOP 
       loc:res=Respons() ! Проверка ответа на сервере
       If loc:res<>'' then break.
       .........
end
Как сделать в цикле  паузу на 10-15 секунд?
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 15:12
				 RaFaeL
				Таймер на окно, включать по кнопке, отдельный цикл не нужен
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 15:40
				 kreator
				Ну если нужна пауза, то типа так:
Код: Выделить всё
LOC:Time = clock()
loop
until (clock()-LOC:Time)>15000
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 15:41
				 Ал
				Как сделать в цикле паузу на 10-15 секунд?
sleep(миллисекунды), работает точно, в хелпе посм. "...To add the SLEEP prototype to your application, include the following MODULE structure inside the Global Map of your program or application..."
зы. можно с beep... - но мне не нравиться, совсем как в бейсике
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:23
				 Admin
				RaFaeL писал(а): Таймер на окно, включать по кнопке, отдельный цикл не нужен
 
+ за эту реализацию.
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:25
				 Дед Пахом
				Обычно пользуются асинхронными запросами.
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:43
				 Ал
				
 началось...
Домой пора, а не глобальные вопросы решать 
 
Дед Пахом писал(а):Обычно пользуются асинхронными запросами.
для целей 
отправляется запрос на сервер
+
для 
...сделать... паузу на 10-15 секунд
 - просто sleep(1000) или таймер если религия не позволяет апи подключать
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:45
				 Yufil
				Ещё был такой извращённый вариант, с вложенным Accept 
Код: Выделить всё
0{Prop:Timer} = 1000 
Accept 
    Case Event() 
    Of event:Timer 
        Break 
    End
   If  Response() 
       Break
   End
End 
Response вызывается раз в 10 секунд 
Ещё плюс, что можно было ловить и другие прерывания во время паузы 
Код: Выделить всё
Case Event() 
Of event:Timer 
... 
Of event:Accepted 
   If Accepted() = ?CancelButton 
    ... 
   End
End
Но это было давно, в новых версиях Клариона проверять надо...
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:45
				 Ал
				Admin писал(а): RaFaeL писал(а): Таймер на окно, включать по кнопке, отдельный цикл не нужен
 
+ за эту реализацию.
 
в коде где нужна пауза может просто не быть окна?
Всем - Хороших выходных!
Пока.
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:48
				 RaFaeL
				Ал писал(а): в коде где нужна пауза может просто не быть окна?
 
В исходном задании сказано "при нажатии кнопки", раз есть кнопка то должно быть и окно?
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:52
				 RaFaeL
				Yufil писал(а): Ещё был такой извращённый вариант, с вложенным Accept
 
Че-то как-то непонятно. Вот простой вариант:
По кнопке: 
На окне:
Код: Выделить всё
of event:timer
  if loc:button
    loc:res=Respons() ! Проверка ответа на сервере
    If loc:res<>''
      loc:button=0       
      do something
    end
  end
Панель открытых окон из соседней темы именно так и работает
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:52
				 Ал
				RaFaeL писал(а):Ал писал(а): в коде где нужна пауза может просто не быть окна?
 
В исходном задании сказано "при нажатии кнопки", раз есть кнопка то должно быть и окно?
 
Верно! И ещё - 
  
 
Но в более общем случае возможно что после отладки это будет просто сервис без кнопок и прочего? 

 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 16:54
				 RaFaeL
				Ал писал(а): ...Как сделать в цикле...
 
Accept цикл чем тебе не цикл?  

 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 17:02
				 Ал
				RaFaeL писал(а): Ал писал(а): ...Как сделать в цикле...
 
Accept цикл чем тебе не цикл?  

 
Да цикл, же цикл. 
Но предположим - нет в коде кнопок, окон и каких-либо циклов вообще..., а пауза между командами нужна очень, как быть?
 
			 
			
					
				Пауза в программе
				Добавлено: 20 Ноябрь 2015, 17:03
				 Дед Пахом
				Нет окна - нарисуй и спрячь.