Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: SetTimer Добавлено: 01.02.04 12:37  

Автор вопроса:  Zeus | Web-сайт: apirussia.by.ru | ICQ: 161801353 

Как запустить SetTimer, если проект у меня состоит только из модуля? Проблема в том, что нельзя получить hWnd программы

Ответить

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

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 01.02.04 13:28
Я недавно узнал, что можно вместо hWnd указать 0. Только сам не
пробовал.

Ответить

Номер ответа: 2
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 01.02.04 22:50

Если указать 0, то получаем идентификатор этого таймера, после чего с ним и работаем... А если указать хэндл, то отличать один таймер от другого, можно уже только по hWnd...

Ответить

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



ICQ: 156165990 

Вопросов: 12
Ответов: 229
 Профиль | | #3 Добавлено: 02.02.04 12:09

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 |

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



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