Можно ли каким нибудь образов вставить в офисовский бэсик таймер из обычного 6го визуал бэйсика? Заранее спасибо.
http://www.experts-exchange.com/Developer/Applications/MS_Office/Q_20507308.html
http://www.progsoc.uts.edu.au/lists/progsoc/2001/July/msg00107.html
http://home.t-online.de/home/520096780133-0001/lang_en/freeware.html
yozh
почитал я твои ссылки, создал ocx фаил, но как применить таймер я так и не понял (вернее не смог перевести всё до конца). Не могбы ты рассказать мне по подробней, как это делается или дать ссылку на рускоязычный ресурс?
НЕ знаю, сам не делал.
Русскоязычных ресурсов не нашёл.
Я тут покопался и нашёл такой код:
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 TimerID As Long
Public TimerSeconds As Single
Sub StartTimer()
TimerSeconds = 1 ' how often to "pop" the timer.
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub
Sub EndTimer()
On Error Resume Next
KillTimer 0&, TimerID
End Sub
Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
'
' The procedure is called by Windows. Put your
' timer-related code here.
'
End Sub
но процедура EndTimer почемуто не работает, никаих ошибок, ничего, просто никак не реагирует, может кто знает в чём дело?
Не понял. Процедура TimerProc вызывается или нет? Именно ей при каждом срабатывании таймера должна передавать управление Windows (SetTimer - обычная APIшная функция, именно её я чаще всего и использую в Delphi, хотя там есть и свои компоненты). Что касается EndTimer, то из приведённого тобой кода мне лично неясно, кто и где должен эту процедуру вызывать.
SetTimer запускает таймер. С этого момента каждые TimerSeconds секунд он будет срабатывать (вызывать функцию, адрес которой ты ей передал в четвёртом параметре), пока ты его не заткнёшь путём вызова KillTimer.
Оно у тебя вообще срабатывает? Если нет, то ты проверял значение TimerID сразу после вызова SetTimer? Там не ноль случайно?
Всё спасибо, я понял в чём была моя ошибка.Теперь всё работает.
Тему можно считать закрытой.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)