Временной таймер
|
|
EagleSH | Дата: Вторник, 14 Июля 2009, 18:18 | Сообщение # 1 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| подскажите господа правильную и умную реализацию таймера, идущего с положительного времени до 0 и уходящего в отрицательное. к примеру на входе в скрипт имеем timer$='01:10' (минута и 10 секнд) чтоб при достижении нуля автоматом было -00:59, -01:23 и так далее Code min$=StrCopy(timer$,1,2) sec$=StrCopy(timer$,4,5) min=VAL(min$) sec=VAL(sec$) If (min=0 & sec=0) Then Message ("пошёл минус","") Else sec=sec-1 If (sec<0) Then sec=59 min=min-1 Else End If (min<10) Then min$='0'+CHAR(min) Else min$=CHAR(min) End If (sec<10) Then sec$='0'+CHAR(sec) Else sec$=CHAR(sec) End timer$=min$+':'+sec$ на выходе из скрипта timer$ должен изменится на одну секунду в конце скрипта естественно ставим ScriptTimer("timer","1000")
Сообщение отредактировал EagleSH - Вторник, 14 Июля 2009, 18:20 |
|
| |
Alex3A | Дата: Вторник, 14 Июля 2009, 18:39 | Сообщение # 2 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Ты знаеш что такое смещение? Любой диапазон чисел можно сместить в любю сторону. 100-50=50 90-50=40 50-50=0 40-50=-10 1-50=-49
|
|
| |
EagleSH | Дата: Вторник, 14 Июля 2009, 18:45 | Сообщение # 3 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| Alex3A, знаю, но шото туплю, не поправишь код?
|
|
| |
toizy | Дата: Вторник, 14 Июля 2009, 18:51 | Сообщение # 4 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Всё очень просто
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
EagleSH | Дата: Вторник, 14 Июля 2009, 18:55 | Сообщение # 5 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| toizy, спасибо дружище! то что нужно и красиво написано! походу спрошу, я так понял в ммб нельзя остановить скрипт? RunScript("timer") и остановить этот таймеровый скрипт.... в хелпе не нашёл. обычно делал через переменные, если не нужно выполнение скрипта, вешал флаг на него.
|
|
| |
toizy | Дата: Вторник, 14 Июля 2009, 19:13 | Сообщение # 6 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Да, вешать флаг Добавлено (14 Июль 2009, 19:13) --------------------------------------------- Quote (EagleSH) и красиво написано! Можно ещё красивей, кстати
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
EagleSH | Дата: Вторник, 14 Июля 2009, 19:27 | Сообщение # 7 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| toizy, хотелось бы увидеть только просьба, подправь так, чтоб к примеру: скрипт в кнопке: Code time$ = '01:10' RunScript("Script") а всё остальное непосредственно в скрипте... мне просто нужно считывать в переменную время, изменять его на секунду и ложить назад... ибо много окошек с временем... мой код так работает без проблем, вот только с минусом бок. а твой код красивее и с минусом ок всё
|
|
| |
toizy | Дата: Вторник, 14 Июля 2009, 19:48 | Сообщение # 8 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Quote (EagleSH) подправь так, чтоб к примеру: это никак не поместить в скрипт с таймером. Должно быть отдельно. Лучше ты переделай свой код так, чтобы это не имело значения
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
EagleSH | Дата: Вторник, 14 Июля 2009, 20:49 | Сообщение # 9 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| toizy, всётаки доработал свой код, работает как часы Code readtime$='01:10' minus$=StrCopy(readtime$,1,1) If (minus$='-') Then min$=StrCopy(readtime$,2,3) sec$=StrCopy(readtime$,5,6) min=VAL(min$) sec=VAL(sec$) sec=sec+1 If (sec>59) Then sec=0 min=min+1 End If (min<10) Then min$='0'+CHAR(min) Else min$=CHAR(min) End If (sec<10) Then sec$='0'+CHAR(sec) Else sec$=CHAR(sec) End readtime$='-'+min$+':'+sec$ Else min$=StrCopy(readt ime$,1 ,2) sec$=StrCopy(readtime$,4,5) min=VAL(min$) sec=VAL(sec$) If (min=0 & sec=0) Then readtime$='-00:01' Else sec=sec-1 If (sec<0) Then sec=59 min=min-1 End If (min<10) Then min$='0'+CHAR(min) Else min$=CHAR(min) End If (sec<10) Then sec$='0'+CHAR(sec) Else sec$=CHAR(sec) End readtime$=min$+':'+sec$ End End
Сообщение отредактировал EagleSH - Вторник, 14 Июля 2009, 20:51 |
|
| |
toizy | Дата: Вторник, 14 Июля 2009, 20:53 | Сообщение # 10 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Слишком длинный и нуждается в оптимизации Добавлено (14 Июль 2009, 20:53) --------------------------------------------- В частности, ветвление можно выкинуть, ибо не нужно
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |