Как написать свой таймер?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Как написать свой таймер?

Сообщение Vovik » 07.01.2004 (Ср) 3:29

Как написать свой таймер? Просто мне нуна запихнуть таймер в dll, а для этого надо писать свой...у мя есть маленькая идейка, но я хотел спросить у вас, уважаемые обитатели форума... :roll:

Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Сообщение Aleksej » 07.01.2004 (Ср) 9:06

Используя API:
Код: Выделить всё
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 07.01.2004 (Ср) 15:36

Хм...знаешь, я это и сам знал...но дело ведь не в этом...мне нужно осуществить функции стандартного таймера...вопрос заключался именно в этом... :roll:

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Timer!!!

Сообщение hCORe » 07.01.2004 (Ср) 20:31

Если речь идет о стандартном элементе "Таймер", то можно реализовать его следующим кодом :wink: :

Код: Выделить всё
Dim CMX as Single, TMX as Single
Dim AL as Boolean, TmrInterval as Long
    TmrInterval=5000 '5 секунд; ставь сколько нужно
    AL=False 'флаг обновления таймера если 24 ч.
    CMX = Timer
    Do
        DoEvents
        If Format(Time, "hh") = "24" And _
        Format(Time, "m\")="0" And _
        AL = False Then _
        AL = True: CMX = Timer
        TMX = Timer

        If TMX >= CMX + (TmrInterval/1000) Then
            'сделать все нужные действия
            MsgBox "Прошло 5 секунд. _
            Еще по одной хряпнем?"
            Exit Do 'выйти из цикла
        End If
    Loop


Еще один глюк: если 24 часа, то таймер обнуляется. Он устранен в коде дополнительным опросом таймера (если 24.00). Вроде работает, но очень систему тормозит :cry:
Моду создают модоки, а распространяют модозвоны.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Re: Timer!!!

Сообщение Vovik » 07.01.2004 (Ср) 23:28

Спасибо большое... такой тож сойдёт... :lol: А 24 часа мне не нужно... мне 1000 - 60000 милсек... :wink:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron