Основы офисного программирования и язык VBA


Пример 6.11


'Функции работы с таймером

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 Counter As Long 'Счетчик числа вызовов Callback функции

Public IdEv As Long

Public Sub HowManyProc(ByVal HandleW As Long, ByVal msg As Long, _

ByVal idEvent As Long, ByVal TimeSys As Long)

'Функция обратного вызова. Вызывается при обработке сообщения WM_Timer,

'посылаемого таймером, созданным процедурой SetTimer

Counter = Counter + 1

Debug.Print "Hi", Counter

End Sub

Public Sub Start()

'Создает таймер, вызывая Win32 Api функцию SetTimer

Counter = 0

IdEv = SetTimer(0&, 0&, 10000, AddressOf HowManyProc)

If IdEv = 0 Then

MsgBox ("Не удалось создать таймер!")

Else

Debug.Print "Создан Таймер: Идентификатор = ", IdEv

End If

End Sub

Public Sub Finish()

'Удаляет таймер

If IdEv > 0 Then

Call KillTimer(0&, IdEv)

Debug.Print "Удален Таймер: Идентификатор = ", IdEv

IdEv = 0

End If

End Sub




Начало  Назад  Вперед



Книжный магазин