Альтернатива контролу Таймер

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Альтернатива контролу Таймер

Сообщение Gigahard » 01.12.2005 (Чт) 16:51

Стандартный контрол Таймер не позволяет использовать интервалы чуть более одной минуты (65 535 милисекунд). Как обойти это ограничение?
Старый глюк лучше новых двух!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 01.12.2005 (Чт) 17:00

SetTimer? :)
Если всё делать своими ручками, они скоро отвалятся !

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.12.2005 (Чт) 17:06

ну так запомни дату и проверяй ее в таймере , как только наступило твое событие по времени от начального, то выполняешь что-то , если нет, то ничего

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 01.12.2005 (Чт) 17:22

Конечно такая идея была, но при этом для повышения точности придется ставить таймер на малый цикл, а это по напрасну будет загружать систему. Я бы все же хотел обойтись без изврата по созданию большого таймера из маленького... Может есть какая альтернатиа в API?



Гы :).. Еще как вариант, поставить для выполнения таймера условие, что таймер перед этим будет прокручиваться в холостую n раз с периодом скажем в одну секунду... Если он n раз прокрутился, то выполнить обработку данных и опять ставим счетчик прокруток на 0...
Старый глюк лучше новых двух!

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 01.12.2005 (Чт) 18:01

И все же... Может в API есть какой нибудь свой таймер в котором можно пставить достаточно большой период, дабы не гонять дефолтный таймер в холостую?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.12.2005 (Чт) 18:13

Lasciate ogni speranza, voi ch'entrate.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 02.12.2005 (Пт) 13:22

Ссылка сюда же! :lol:
Но цифорки другие...
А я все практикую лечение травами...

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 02.12.2005 (Пт) 13:40

Twister писал(а):Ссылка сюда же! :lol:

Ну дык если ответ в этой теме, то куда еще ссылаться?

beat_swamp
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 107
Зарегистрирован: 05.10.2005 (Ср) 16:16

Сообщение beat_swamp » 02.12.2005 (Пт) 14:54

можно по таймеру например какой нить переменную-счетчик увиличивать на 1 и как тока счетчик достигнет определенного занчения, выполнить действие и занулить счетчик1
Код: Выделить всё
Dim Counter as Long
Dim ItsTimeToDo as Long

Private Sub Form_Load()
     Counter = 0
     ItsTimeToDo = 1000 'время в секундах
     Timer1.Interval = 1000 'одна секунда
end sub

Private Sub Timer1_Timer()
     Counter = Counter + 1
     if Counter >= ItsTimeToDo then
          Counter = 0
          DoSomething
     end if
End Sub

Private Sub DoSomething()
     'здесь процедура которая будет выполняться каждые 1000 секунд
End Sub

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 05.12.2005 (Пн) 17:03

Gigahard писал(а):Конечно такая идея была, но при этом для повышения точности придется ставить таймер на малый цикл, а это по напрасну будет загружать систему. Я бы все же хотел обойтись без изврата по созданию большого таймера из маленького...


А кто мешает проставить таймер на максимум, а поиом если надо менять интервал. Это-же переменная величина всё-таки.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 05.12.2005 (Пн) 18:24

Вот, за 20 мин сварганил...



Общая идея начинки такова: Таймер изначально ставится на 1 сек (проц не грузит, согласитесь), и по таймеру устанавливает скока до истечения указанного интервала, если меньше секунды-уменьшаем интервал...
Вложения
LTimer.zip
(1.48 Кб) Скачиваний: 22


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 166

    TopList