Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.201.69.22] |
|
Сообщ.
#1
,
|
|
|
EXCEL
С помощь функции OnTime возможен запуск процедуры через указанный интервал времени Например, запускаем процедуру "my_Procedure" через 15 сек. Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure" Запускаем процедуру "my_Procedure" в 17.00 Application.OnTime TimeValue("17:00:00"), "my_Procedure" Возможен запуск нескольких таймеров, при необходимости возможна отмена (обратите внимание на последний параметр): Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="my_Procedure", Schedule:=False Если необходим постоянный вызов процедуры "my_Procedure" через 15 сек., то поместите 1 пример в тело процедуры "my_Procedure" WORD WORD может работать только с одним таймером, т.е. в данном примере Application.OnTime When:="15:55:00", Name:="Macro1" Application.OnTime When:="15:56:00", Name:="Macro2" отработает только второй таймер ACCESS На форму ACCESS можно «повесить» один таймер. Событие «Таймер» (Timer) возникает регулярно через интервал времени, заданный в значении свойства формы Интервал таймера (TimerInterval). ---------------------------------------------------------- Если все же необходимо организовать несколько таймеров, то вопрос можно решить с помощью API-функций timeSetEvent и timeKillEvent Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long Public Const TIME_ONESHOT = 0 Public Const TIME_PERIODIC = 1 Public Const TIME_CALLBACK_EVENT_PULSE = &H20 Public Const TIME_CALLBACK_EVENT_SET = &H10 Public Const TIME_CALLBACK_FUNCTION = &H0 Public VBTimer As Long, MMTimer As Long Public hMMTimer As Long ' Вызываем функцию TimerProc через каждые 500 мс. hMMTimer = timeSetEvent(500, 0, AddressOf TimerProc, 0, TIME_PERIODIC) Обратите внимание: в качестве третьего параметра передается адрес Функции TimerProc с помощью модификатора AddressOf (Впервые появился в MS OFFICE2000) Обратите внимание: функция timeSetEvent и CallBack-функция TimerProc должны обязательно находиться в разных модулях, количество и тип арументов в TimerProc должны совпадать с количеством и типом арументов в timeSetEvent Public Function TimerProc(ByVal uID As Long, _ ByVal uMsg As Long, _ ByVal dwUser As Long, _ ByVal dw1 As Long, _ ByVal dw2 As Long) As Long 'через указанный временной интервал показываем 'процент вертикального скроллинга в строке состояния StatusBar = ActiveWindow.VerticalPercentScrolled DoEvents TimerProc = 0 End Function В нужный момент – останавливаем таймер timeKillEvent hMMTimer |
Сообщ.
#2
,
|
|
|
Класс для запуска нескольких таймеров в форме Access
http://hiprog.com/index.php?option=com_content&task=view&id=251661564&Itemid=35 |