Timer с интервалом больше чем минута?

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

Timer с интервалом больше чем минута?

Сообщение Alexey-VB » 14.08.2006 (Пн) 19:01

Извесно, что control "Timer" имеет интервал до одной минуты.
Что можно сделать для того, что бы интервал был 2-5 минут?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.08.2006 (Пн) 19:10

Положить на форму 2-5 таймеров ;-)
Изображение

Alexey-VB
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 11.08.2006 (Пт) 15:10

Сообщение Alexey-VB » 14.08.2006 (Пн) 19:17

В одной форме не должно быть более 30 таймеров, я уже использую 12, так что я выйду за предел дозволеного :(

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 14.08.2006 (Пн) 19:23

Alexey-VB
Ну вопервых ограничение у таймера не 1 минута, а 65535 мс., ибо большее число в UINT не влазит.

Во вторых. Таймер выставь на 1000. В таймере прибавляй к какой нибудь переменной единицу, и смотри, когда в этой переменной станет 180 - пройдёт ровно 2 минуты.

Можно заческать значение переменной Timer (той что VBA.Timer) и сравнивать, когда Timer - 180 > OldTimer значит прошло 2 минуты.

Есть ещё куча способов.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 14.08.2006 (Пн) 19:26

SetTimer?
[Место cдаётся]

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 14.08.2006 (Пн) 19:38

Почитал описание функции SetTimer. Так и не понял, чем это может помочь?
В одной форме не должно быть более 30 таймеров
Да?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.08.2006 (Пн) 19:47

Хакер писал(а):Во вторых. Таймер выставь на 1000. В таймере прибавляй к какой нибудь переменной единицу, и смотри, когда в этой переменной станет 180 - пройдёт ровно 2 минуты.

Нет, видно арифметику в школе никто не учил :-(


Откуда взялась идея про 30 таймеров -- тоже не знаю.
Изображение

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.08.2006 (Пн) 21:57

tyomitch писал(а):
Хакер писал(а):Во вторых. Таймер выставь на 1000. В таймере прибавляй к какой нибудь переменной единицу, и смотри, когда в этой переменной станет 180 - пройдёт ровно 2 минуты.

Нет, видно арифметику в школе никто не учил :-(
Ну просто он забыл написать про второй таймер, который с интервалом в 2000 прибавляет к той же переменной 1.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 15.08.2006 (Вт) 1:38

Ммм... Челы, я после лета - за комп давно не садился, но первое что в голову стукнуло -

Sleep или WaitForSingleObject (вроде как то так)

Не пойдут ?

Без таймеров и проще ?

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 15.08.2006 (Вт) 3:26

Объясните, почему не подходит SetTimer?
Бороться и искать, найти и перепрятать!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 15.08.2006 (Вт) 4:22

2 ANDLL

Думаю, "30 таймеров" тебе должно что-то напоминать :)
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

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

Сообщение Twister » 15.08.2006 (Вт) 5:13

ALX_2002 писал(а):Ммм... Челы, я после лета - за комп давно не садился, но первое что в голову стукнуло -

Sleep или WaitForSingleObject (вроде как то так)

Не пойдут ?

Без таймеров и проще ?
Эти функции приостанавливают вызывающий поток - первая на заданный интервал, вторая пока не дождется заданного события. Так что ты ошибся.
А я все практикую лечение травами...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 15.08.2006 (Вт) 5:35

Twister писал(а):Так что ты ошибся.
А может у него такой таймер, до срабатывания которого вообще ничего делать не надо :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

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

Сообщение Twister » 15.08.2006 (Вт) 5:40

vvs_adm писал(а):
Twister писал(а):Так что ты ошибся.
А может у него такой таймер, до срабатывания которого вообще ничего делать не надо :)
Просто чудный таймер... :lol:
А я все практикую лечение травами...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.08.2006 (Вт) 6:09

tyomitch писал(а):
Хакер писал(а):Во вторых. Таймер выставь на 1000. В таймере прибавляй к какой нибудь переменной единицу, и смотри, когда в этой переменной станет 180 - пройдёт ровно 2 минуты.

Нет, видно арифметику в школе никто не учил :-(


Откуда взялась идея про 30 таймеров -- тоже не знаю.


Кххх :cry: BV был прав

BV а асе писал(а):BV (08:38 PM) :
Хакер, иди поспи. Тебе это идет на пользу.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 15.08.2006 (Вт) 8:47

Объясните, почему не подходит SetTimer?
Усек ли автор, почему не подходит обычный таймер, для начала? Так вот, SetTimer не подходит по той же причине:)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.08.2006 (Вт) 9:04

В родном MSDN-овском примере "Creating a Timer" при помощи SetTimer создаётся пятиминутный таймер (uElapse=300000).

ANDLL, что ты имеешь в виду?
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 15.08.2006 (Вт) 9:34

ммм UINT это два или 4 байта?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 15.08.2006 (Вт) 9:47

UINT - это 4 байта
Весь мир матрица, а мы в нем потоки байтов!

Efiop
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.06.2006 (Вт) 12:14
Откуда: РК

Сообщение Efiop » 15.08.2006 (Вт) 9:48

Alexey-VB, как здесь уже предложи заведи секундный таймер и в нем проверяй когда пройдет установленное время.
Попробуй сделать так:

1. Начало отсчета допустим 12:47 29 сек. Запомнили.
2. Тебе нужно отсчитать n-минут/секунд/часов, например 2 минуты.
Тогда тебе нужно следить когда время покажет 12:49 29 сек. Так.
3. В переменной установленное_время = начало_отсчета+ n-мин./сек./часов (12:47 29 сек + 2 мин = 12:49 29 сек) Будет твое время.
4. Теперь лови, когда текущее время будет равно или > (>=)установленного.
Также можно контролировать, если установленное время будет выходить за пределы текущей даты (сутки, месяц, год).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.08.2006 (Вт) 9:48

в cpp - 4
в vb int - 2

ЗЫ. Нифига себе :shock: пока постил - 2 постинга напостили :shock:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 15.08.2006 (Вт) 9:54

2 Efiop, и зачем такое мудрствование? 2 Хакер, в VB нет типа int, есть либо Integer (2 байта), либо Long (4 байта)
Весь мир матрица, а мы в нем потоки байтов!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 15.08.2006 (Вт) 9:57

UINT - это 4 байта

А вот я имел ввиду 2 байта... Неправильно имел :)
Ладно, Денис Победря, +1.
Афтар, юзай SetTimer.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.08.2006 (Вт) 9:57

!Viper!
Я и говорю что Integer в VB имеет сайз - 2 байта.

В Cpp этот тип, который называется INT (ну или UNSIGNED INT - UINT ) имеет размер 4 байта.

Т.е. VB-шный аналог типа INT - тип Long
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alexey-VB
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 11.08.2006 (Пт) 15:10

Сообщение Alexey-VB » 16.08.2006 (Ср) 12:47

Всем спасибо за рекомендации.
Наиболее простым и эффективным для меня является решение предложенное от Хакер.
:D


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 81

    TopList