Страница: 1 |
Как запустить SetTimer, если проект у меня состоит только из модуля? Проблема в том, что нельзя получить hWnd программы
Если указать 0, то получаем идентификатор этого таймера, после чего с ним и работаем... А если указать хэндл, то отличать один таймер от другого, можно уже только по hWnd... RE using sleep to wait for the browser to finish downloading. don't Sleep will halt all execution, including the current download. Asynchronous waiting can be accomplished using the Timer control, which requires the use of a form. If you dont want to use a form, consider using the module: Option Explicit Dim oTimer As clsTimer Dim TimerID As Long Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Sub StartTimer(Caller As clsTimer) Set oTimer = Caller TimerID = SetTimer(0, 0, Caller.Delay, AddressOf TimerEnd) End Sub Private Sub TimerEnd(ByVal hwind As Long, ByVal msg As Long, ByVal id As Long, ByVal CurrentTime As Long) KillTimer 0, TimerID oTimer.RaiseTimerEvent Set oTimer = Nothing End Sub with the following clsTimer: Option Explicit Private mvarDelay As Long Event TimerExpired() Friend Property Let Delay(ByVal vData As Long) mvarDelay = vData End Property Friend Property Get Delay() As Long Delay = mvarDelay End Property Friend Sub RaiseTimerEvent() RaiseEvent TimerExpired End Sub Public Sub Start() mdlTimer.StartTimer Me End Sub Use it in your project with dim WithEvents myTimer as clsTimer set myTimer = new clsTimer myTimer.Delay = 1000 myTimer.Start Private Sub myTimer_TimerExpired() 'you could test the status of the Document object here End Sub Disclamer: This is only an example, using this code as is will terminate your VB project if there is a run time error before the end of the myTimer_TimerExpired sub. Best Wishes Morgan Отсюда http://www.vbip.com/forum/topic.asp?id=2545 Страница: 1 |
Вопрос: SetTimer
Добавлено: 01.02.04 12:37
Автор вопроса: Zeus | Web-сайт:
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 01.02.04 13:28
Я недавно узнал, что можно вместо hWnd указать 0. Только сам не
пробовал.
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 01.02.04 22:50
Номер ответа: 3
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #3
Добавлено: 02.02.04 12:09