Как сделать 30 минут

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

Как сделать 30 минут

Сообщение eldar22 » 18.06.2009 (Чт) 14:04

Здравствуйте!
Есть простой код
Код: Выделить всё
Private Sub Command1_Click()
s = 1000
    Timer1.Interval = 60000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
  Static State As Boolean
Label1.Visible = False

s = s - 1000
    If s = 0 Then Timer1.Enabled = True
End Sub


Вопрс вот в чём как сделать интервал 30 минут
А то у меня только получилось 1 минута так как 60 000 сек = 1 минуте то я пробывал вот так 60 000+60 000=120 000
Поставил интервал 120 000 а он мне ошибку выдаёт

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

Re: Как сделать 30 минут

Сообщение Хакер » 18.06.2009 (Чт) 14:18

eldar22 писал(а):так как 60 000 сек = 1 минуте

Нда...

Сделать минутный интервал и считать тики.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Как сделать 30 минут

Сообщение eldar22 » 18.06.2009 (Чт) 14:39

:shock:
Так у меня и стоит минутный интервал!
А вот как 30 минутный интервал сделать?

dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Re: Как сделать 30 минут

Сообщение dcdlab » 18.06.2009 (Чт) 14:46

Код: Выделить всё
tik = tik + 1
if (tik mod 30) = 0 then
'то что ты хочешь
end if


или же:

Код: Выделить всё
tik = tik + 1
if tik = 30 then
tik = 0
'то что ты хочешь
end if

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Как сделать 30 минут

Сообщение Saturn.65 » 18.06.2009 (Чт) 16:50

Код: Выделить всё
Private Sub Form_Paint()
Print Time
'выберите, какой вариант вам больше по душе
Delay (5) 'или Sleeping (5)
'и в том, и в другом случае указывается время в секундах
MsgBox "Все"
Print Time
End Sub
Function Delay(Pause As Single)
Dim Start As Single
Start = Timer
Do While Timer < Start + Pause
DoEvents
Loop
End Function
Главное, ребята, сердцем не стареть...

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

Re: Как сделать 30 минут

Сообщение Хакер » 18.06.2009 (Чт) 17:24

Saturn.65, зачем советовать фигню?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Как сделать 30 минут

Сообщение Saturn.65 » 18.06.2009 (Чт) 17:41

Хакер писал(а):Saturn.65, зачем советовать фигню?

Так вроде работает и таймера не надо.
Главное, ребята, сердцем не стареть...

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

Re: Как сделать 30 минут

Сообщение Хакер » 18.06.2009 (Чт) 17:52

Вот именно, что все эти 30 минут программа усиленно работает. Хотя этого быть не должно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Как сделать 30 минут

Сообщение Proxy » 18.06.2009 (Чт) 18:07

Ага.
Можно ещё интервалом для таймера назначать максимально возможный из расчёта оставшегося времени и пределом interval.
Учти, что таймер не оч. ровно выдерживает интервалы, при кадом таком "тике" желательно считать оставшееся время.
Follow the white rabbit.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Как сделать 30 минут

Сообщение Mikle » 18.06.2009 (Чт) 18:16

Так, если без таймера:
Код: Выделить всё
WaitTime = Timer + 60 * 30  'секунд
Do While Timer < WaitTime
  Sleep 1000
Loop

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Как сделать 30 минут

Сообщение eldar22 » 18.06.2009 (Чт) 18:46

А код

Код: Выделить всё
tik = tik + 1
if tik = 30 then
tik = 0
'то что ты хочешь
end if


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

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как сделать 30 минут

Сообщение Dimen » 18.06.2009 (Чт) 18:57

Само собой в таймер! Вы чего думть то отказываетесь сами.
Íå óïóñêàéòå øàíñ!

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Как сделать 30 минут

Сообщение eldar22 » 18.06.2009 (Чт) 19:00

Я в таймер в первую очередь вставил но почему то не работает

Код: Выделить всё
Private Sub Timer1_Timer()
Static State As Boolean
tik = tik + 1
If tik = 30 Then
tik = 0
 
Label1.Visible = False

s = s - 1000
    If s = 0 Then Timer1.Enabled = True
End If
End Sub

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как сделать 30 минут

Сообщение Dimen » 18.06.2009 (Чт) 19:05

Я так и знал что ты это спросишь! просто ждал! Ты из тех кто бездумно вставляет чужой код! Уж основы то знать нужно наверно? не стыдно?
Видишь эту строчку:
Код: Выделить всё
tik = tik + 1


У тебя значение переменной ни где не хранится то есть ты постоянно к 0 еденицу добавляешь.
ТЕбе поможет:
Код: Выделить всё
dim
Íå óïóñêàéòå øàíñ!

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

Re: Как сделать 30 минут

Сообщение Хакер » 18.06.2009 (Чт) 19:06

А надо думать, что, куда и зачем ты вставляешь, а не тупо вставлять.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Как сделать 30 минут

Сообщение eldar22 » 18.06.2009 (Чт) 19:13

А тип переменно не подскажите?
Просто есть String ,Byte
А вот tik переменная какого типа?

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как сделать 30 минут

Сообщение Dimen » 18.06.2009 (Чт) 19:17

Можешь вообще без типа. А по сути Byte.
Ну сам бы поэксперементировал.
Íå óïóñêàéòå øàíñ!

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

Re: Как сделать 30 минут

Сообщение Хакер » 18.06.2009 (Чт) 19:18

Dimen писал(а):А по сути Byte.

Обоснование?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как сделать 30 минут

Сообщение Dimen » 18.06.2009 (Чт) 19:28

Хакер, а что Byte не будет работать в данном случае? Будет! Без типа так же будет работать. Я обычно в таких ситуациях делаю без типа, но его вопрос стоял что именно из двух нужно использовать. Может ему так больше нравится!?
Byte - числовая переменная с интервалом от 0-255. В данном случае у него числа.
Ему тут и другие числовые типы подойдут.
Íå óïóñêàéòå øàíñ!

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

Re: Как сделать 30 минут

Сообщение Viper » 18.06.2009 (Чт) 20:31

Dimen писал(а):Хакер, а что Byte не будет работать в данном случае? Будет! Без типа так же будет работать. Я обычно в таких ситуациях делаю без типа, но его вопрос стоял что именно из двух нужно использовать. Может ему так больше нравится!?
Byte - числовая переменная с интервалом от 0-255. В данном случае у него числа.
Ему тут и другие числовые типы подойдут.
Другие? Single, Double тоже пойдут? Оригинально! А то еще Date тоже вполне себе числовой тип.
Весь мир матрица, а мы в нем потоки байтов!

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Как сделать 30 минут

Сообщение eldar22 » 18.06.2009 (Чт) 20:42

А чё то не работает

Код: Выделить всё
Private Sub Timer1_Timer()
Dim tik
Static State As Boolean
tik = tik + 1
If tik = 30 Then
tik = 0
 
Label1.Visible = False

s = s - 1000
    If s = 0 Then Timer1.Enabled = True
End If
End Sub

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

Re: Как сделать 30 минут

Сообщение Viper » 18.06.2009 (Чт) 20:46

А подумать? У тебя как переопределялось значение переменной tik на каждом тике таймера, так и обнуляется. Вынеси ее на уровень модуля.
Весь мир матрица, а мы в нем потоки байтов!

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Как сделать 30 минут

Сообщение SLIM » 18.06.2009 (Чт) 21:23

Dimen писал(а):Без типа так же будет работать. Я обычно в таких ситуациях делаю без типа


Не бывает переменных без типа.
Пишите жизнь на чистовик.....переписать не удастся.....

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

Re: Как сделать 30 минут

Сообщение Viper » 18.06.2009 (Чт) 21:26

SLIM писал(а):
Dimen писал(а):Без типа так же будет работать. Я обычно в таких ситуациях делаю без типа


Не бывает переменных без типа.
Variant вполне себе переменная без типа. Вернее универсального типа.
Весь мир матрица, а мы в нем потоки байтов!

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как сделать 30 минут

Сообщение Dimen » 18.06.2009 (Чт) 21:27

То что я сказал на работоспособность кода не повлияет ни так ли? Если не влияет зачем обсуждать да возможно некорректно, дак поправте меня.
Я ведь не предлогал ему нерабочий вариант.
Íå óïóñêàéòå øàíñ!

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

Re: Как сделать 30 минут

Сообщение Viper » 18.06.2009 (Чт) 21:29

Dimen писал(а):То что я сказал на работоспособность кода не повлияет ни так ли? Если не влияет зачем обсуждать да возможно некорректно, дак поправте меня.
При использовании в качестве счетчика переменной нецелого типа вполне могут вылезти глюки.
Весь мир матрица, а мы в нем потоки байтов!

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Как сделать 30 минут

Сообщение SLIM » 18.06.2009 (Чт) 21:35

Viper писал(а):Variant вполне себе переменная без типа. Вернее универсального типа.


Variant - это как раз тип...тип переменной. Тип переменной характеризует где, когда и как будут располагаться данные, сколько они будут занимать места, и какие атрибуты они имеют. Переменная Dim Foo as Variant - это переменная типа Variant. А переменных без типа не существует. Я вот об этом говорил.
Пишите жизнь на чистовик.....переписать не удастся.....

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

Re: Как сделать 30 минут

Сообщение Хакер » 18.06.2009 (Чт) 21:36

То что я сказал на работоспособность кода не повлияет ни так ли? Если не влияет зачем обсуждать да

Влияет. Код становится медленнее.


SLIM
Viper имел в виду переменные, объявленные без явного указания типа.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Как сделать 30 минут

Сообщение SLIM » 18.06.2009 (Чт) 21:45

Хакер писал(а):SLIM
Viper имел в виду переменные, объявленные без явного указания типа.


То что Viper значет что переменных без типа не существует я более чем уверен. Просто Dimen может пойти по ложному пути и долго считать что есть переменные без типа.
Пишите жизнь на чистовик.....переписать не удастся.....

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: Как сделать 30 минут

Сообщение JohnK » 18.06.2009 (Чт) 22:09

Код: Выделить всё
Public Declare Function GetTickCount Lib "kernel32" () As Long
dim Mytimer as Double
....

Private Sub Cmd_Start_Click
Mytimer=GetTickCount+ (30*60*1000)
Timer1.Interval=1000
Timer1.enable=True
end sub

Private Sub Timer1_Timer()
If GetTickCount >= Mytimer Then
  Call Do_what_you_wanna_do
End If
End Sub


Я думаю точности хватит вполне.
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

След.

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

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

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

    TopList