Страница: 1 |
Страница: 1 |
Вопрос: Вопрос по Timer'у
Добавлено: 29.10.04 17:26
Автор вопроса: Gudzon
Как сделать, чтобы таймер отсчитывал время назад? И чтобы произошло, какое-нить событие по истечении времени (например, выход)? Время можно дать 2 минуты.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #1
Добавлено: 29.10.04 20:26
вот например:
Timer1
.Enabled = False
.Interval = 1000
Код:
в области General сначала пиши.
'---------------------------
Private Sub Form_Load()
TimerS = 0
Timer1.Enabled = True
End Sub
'---------------------------
Private Sub Timer1_Timer()
TimerS = TimerS + 1
If TimerS = 120 Then
If MsgBox ("Таймер сработал. Выйти?", vbInformation + vbYesNo, "Вопрос" = vbYes Then
End
Else
Timer1.Enabled = False
End If
End If
Номер ответа: 2
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #2
Добавлено: 30.10.04 11:51
сорри, не заметил что форум VBA
подожди, а как я помню в VBA нет таймера???
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 31.10.04 04:12
Заведи переменную и в ней по таймеру отнимай секунды.
Номер ответа: 4
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #4
Добавлено: 31.10.04 10:19
2CyRax
ну дык там нет таймера... я в PowerPoint проверил.
Заведи переменную и в ней по таймеру отнимай секунды.
а мой код (см.выше) так и делает!
Номер ответа: 5
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #5
Добавлено: 01.11.04 00:30
Ну если нет таймера, то через APU делай таймер. Я когда то делал для проверки - всё работает. Если поиск работает, то может и найдёшь.
А если с API лень ковыряться, то просто через DoEvents.
Номер ответа: 6
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #6
Добавлено: 01.11.04 00:31
Прошу прощения
APU <=> API
Номер ответа: 7
Автор ответа:
Access
Вопросов: 0
Ответов: 32
Web-сайт:
Профиль | | #7
Добавлено: 04.11.04 15:19
Ну, как вариант могу предложить такое. В Accesse работает, других офисных приложениях не проверял.
Только вот в офисе младше 2000 нет функции AddressOf, но ее можно сделать самому.
Public Declare Function SetTimer Lib "user32" _
 ByVal hWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" _
 ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
Public lngID As Long
Function CB_StartTimer()
lngID = SetTimer(0, 0, 1000, AddressOf timerwork)
End Function
Function CB_StopTimer()
Call KillTimer(0, lngID)
End Function
Function timerwork()
Call CB_StopTimer
MsgBox "fff"
End Function
Номер ответа: 8
Автор ответа:
Warlock
Вопросов: 8
Ответов: 9
Профиль | | #8
Добавлено: 05.11.04 02:20
Вводишь переменную например:
Dim s As Integer
Private Sub Form_Load()
Tm.Interval=1000
s=60
End Sub
Private Sub Tm_Timer()
If s=0 Then
MsgBox "Times Up!"
Tm.Enabled=False
Else
s=s-1
End If
End Sub
Должно получиться...