Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Вопрос по Timer'у Добавлено: 29.10.04 17:26  

Автор вопроса:  Gudzon
Как сделать, чтобы таймер отсчитывал время назад? И чтобы произошло, какое-нить событие по истечении времени (например, выход)? Время можно дать 2 минуты.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #1
Добавлено: 29.10.04 20:26
вот например:
Timer1
.Enabled = False
.Interval = 1000

Код:

в области General сначала пиши.

Dim TimerS 'занчение ёё будет - сколько осталось времени
'---------------------------
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-сайт: 123
 Профиль | | #2
Добавлено: 30.10.04 11:51
сорри, не заметил что форум VBA
подожди, а как я помню в VBA нет таймера???

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 31.10.04 04:12
Заведи переменную и в ней по таймеру отнимай секунды.

Ответить

Номер ответа: 4
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #4
Добавлено: 31.10.04 10:19
2CyRax
ну дык там нет таймера... я в PowerPoint проверил.

Заведи переменную и в ней по таймеру отнимай секунды.

а мой код (см.выше) так и делает!

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 01.11.04 00:30
 Ну если нет таймера, то через APU делай таймер. Я когда то делал для проверки - всё работает. Если поиск работает, то может и найдёшь.
 А если с API лень ковыряться, то просто через DoEvents.

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #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

Должно получиться...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам