Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Класс таймера [VB6/VBA]. / 4 сообщений из 4, страница 1 из 1
11.06.2019, 10:25
    #39825225
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Класс таймера [VB6/VBA].
Класс который реализует функцию таймера для VBA/VB6. Совместим с 64 битным офисом. Для использования нужно просто добавить модуль в проект, задать интервал и ловить события Tick . Модуль имеет небольшую проверку позволяющего уменьшить количество сбоев при отладке.

Ссылка на GitHub.
...
Рейтинг: 0 / 0
21.06.2019, 11:20
    #39829100
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Класс таймера [VB6/VBA].
ATM-TURBO 2Класс который реализует функцию таймера для VBA/VB6. Совместим с 64 битным офисом. Для использования нужно просто добавить модуль в проект, задать интервал и ловить события Tick . Модуль имеет небольшую проверку позволяющего уменьшить количество сбоев при отладке.

Ссылка на GitHub.

vba
У Acccess есть свой таймер
В Excel ни разу таймер не требовался
...
Рейтинг: 0 / 0
22.06.2019, 14:35
    #39829451
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Класс таймера [VB6/VBA].
ATM-TURBO 2,

Я всегда обходился таким. Или в Вашем есть какие очень нужные фишки?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Option Explicit

Private lTimerID As Long
Private bAutoReset As Boolean

Public Event OnTimer()

Public Property Get AutoReset() As Boolean
AutoReset = bAutoReset
End Property
Public Property Let AutoReset(value As Boolean)
bAutoReset = value
End Property

Public Sub StartTimer(ByVal Duration As Long)
    If lTimerID = 0 Then
        If Duration > 0 Then
            lTimerID = SetTimer(Application.hWnd, ObjPtr(Me), Duration, AddressOf TimerProc)
            If lTimerID = 0 Then
                MsgBox "Timer initialization failed!"
            End If
        Else
            MsgBox "The duration must be greater than zero."
        End If
    Else
        MsgBox "Timer already started."
    End If
End Sub

Public Sub StopTimer()
    If lTimerID <> 0 Then
        KillTimer Application.hWnd, lTimerID
        lTimerID = 0
'    Else
'        MsgBox "Timer is not active."
    End If
End Sub

Public Sub RaiseTimerEvent()
    If Not AutoReset Then
        StopTimer
    End If
    RaiseEvent OnTimer
End Sub

...
Рейтинг: 0 / 0
22.06.2019, 14:59
    #39829454
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Класс таймера [VB6/VBA].
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#If Win64 Then

Public Declare PtrSafe Function SetTimer Lib "User32" _
    (ByVal hWnd As LongLong, _
    ByVal nIDEvent As LongLong, _
    ByVal uElapse As LongLong, _
    ByVal lpTimerFunc As LongLong) As LongLong

Public Declare PtrSafe Function KillTimer Lib "User32" _
    (ByVal hWnd As LongLong, _
    ByVal nIDEvent As LongLong) As LongLong
    
#Else

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
    
#End If

...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Класс таймера [VB6/VBA]. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]