Пауза в программе

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
pansoft
Бывалый
Сообщения: 76
Зарегистрирован: 08 Август 2011, 11:37

Пауза в программе

Сообщение pansoft »

Добрый день всем!
Задача такая: при нажатии кнопки отправляется запрос на сервер, ответ приходит через 1 до 5 минут(примерно).

Код: Выделить всё

Send() ! отправка запроса на сервере
loc:res=''
LOOP 
       loc:res=Respons() ! Проверка ответа на сервере
       If loc:res<>'' then break.
       .........
end
Как сделать в цикле паузу на 10-15 секунд?
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Пауза в программе

Сообщение RaFaeL »

Таймер на окно, включать по кнопке, отдельный цикл не нужен
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Пауза в программе

Сообщение kreator »

Ну если нужна пауза, то типа так:

Код: Выделить всё

LOC:Time = clock()
loop
until (clock()-LOC:Time)>15000
We are hard at work… for you. :)
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Пауза в программе

Сообщение Ал »

Как сделать в цикле паузу на 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... - но мне не нравиться, совсем как в бейсике
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Пауза в программе

Сообщение Admin »

RaFaeL писал(а): Таймер на окно, включать по кнопке, отдельный цикл не нужен
+ за эту реализацию.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Пауза в программе

Сообщение Дед Пахом »

Обычно пользуются асинхронными запросами.
С уважением, ДП
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Пауза в программе

Сообщение Ал »

:) началось...
Домой пора, а не глобальные вопросы решать :lol:
Дед Пахом писал(а):Обычно пользуются асинхронными запросами.
для целей
отправляется запрос на сервер
+

для
...сделать... паузу на 10-15 секунд
- просто sleep(1000) или таймер если религия не позволяет апи подключать
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Пауза в программе

Сообщение 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
Но это было давно, в новых версиях Клариона проверять надо...
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Пауза в программе

Сообщение Ал »

Admin писал(а):
RaFaeL писал(а): Таймер на окно, включать по кнопке, отдельный цикл не нужен
+ за эту реализацию.
в коде где нужна пауза может просто не быть окна?

Всем - Хороших выходных!
Пока.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Пауза в программе

Сообщение RaFaeL »

Ал писал(а): в коде где нужна пауза может просто не быть окна?
В исходном задании сказано "при нажатии кнопки", раз есть кнопка то должно быть и окно?
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Пауза в программе

Сообщение RaFaeL »

Yufil писал(а): Ещё был такой извращённый вариант, с вложенным Accept
Че-то как-то непонятно. Вот простой вариант:

По кнопке:

Код: Выделить всё

Send()
loc:button=1
На окне:

Код: Выделить всё

of event:timer
  if loc:button
    loc:res=Respons() ! Проверка ответа на сервере
    If loc:res<>''
      loc:button=0       
      do something
    end
  end
Панель открытых окон из соседней темы именно так и работает
Последний раз редактировалось RaFaeL 20 Ноябрь 2015, 16:53, всего редактировалось 1 раз.
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Пауза в программе

Сообщение Ал »

RaFaeL писал(а):
Ал писал(а): в коде где нужна пауза может просто не быть окна?
В исходном задании сказано "при нажатии кнопки", раз есть кнопка то должно быть и окно?
Верно! И ещё -

Код: Выделить всё

...Как сделать в цикле...
:)
Но в более общем случае возможно что после отладки это будет просто сервис без кнопок и прочего? :wink:
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Пауза в программе

Сообщение RaFaeL »

Ал писал(а): ...Как сделать в цикле...
Accept цикл чем тебе не цикл? :wink:
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Пауза в программе

Сообщение Ал »

RaFaeL писал(а):
Ал писал(а): ...Как сделать в цикле...
Accept цикл чем тебе не цикл? :wink:
Да цикл, же цикл.
Но предположим - нет в коде кнопок, окон и каких-либо циклов вообще..., а пауза между командами нужна очень, как быть?
Последний раз редактировалось Ал 20 Ноябрь 2015, 17:04, всего редактировалось 1 раз.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Пауза в программе

Сообщение Дед Пахом »

Нет окна - нарисуй и спрячь.
С уважением, ДП
Ответить