Период времени.

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

Период времени.

Сообщение Saturn.65 » 07.05.2010 (Пт) 11:03

Даны три текстбокса. В одном час начала запрета, в другом час окончание запрета. А в третьем системное время. При уравнивании системного времени с временем в 1 текстбоксе или большим по значению включается команда Click. Это легко сделать. А как сделать, чтобы эта команда выключалась, когда системное время сравняется с со временем во 2 текстбоксе или будет больше? Не могу сформулировать.
Главное, ребята, сердцем не стареть...

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Период времени.

Сообщение MIT » 07.05.2010 (Пт) 11:07

По-моему ты там ерундой какой-то занимаешься :)
Код в студию, посмотрим.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

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

Re: Период времени.

Сообщение Saturn.65 » 07.05.2010 (Пт) 17:22

MIT писал(а):По-моему ты там ерундой какой-то занимаешься :)
Код в студию, посмотрим.

На форме СистемноеВремя.Caption и два текстбокса с началом времени запрета и началом времени разрешения. Т.е. Как только системное время станет равно или больше ВремяЗапрета.Text, то включается команда, которая будет убивать процесс в этот период. После того, как системное время будет больше ВремяРазрешения.Text, то убивание процесса работать не должно.
Код: Выделить всё
    If Val(СистемноеВремя.Caption) >= Val(ВремяЗапрета.Text) Then
          Command10_Click 'Команда, убивающая процесс
    End If

    If Val(СистемноеВремя.Caption) >= Val(ВремяРазрешения.Text) Then

    End If

В одном случае оно работает правильно, если например установить время с 22 вечера до 7 утра. А если с 16 часов этого дня и до 18 часов другого дня, то...естественно не работает. Она же не знает, что это в другой день. :)
Главное, ребята, сердцем не стареть...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Период времени.

Сообщение Денис » 07.05.2010 (Пт) 17:35

Не надо Val(Caption) не надо Val(Text).

Надо хранить время в переменых типа DateTime, и сравнивать их между собой. А в Caption'ы и в Text'ы выводить таймером через Format.

Фишка переменной DateTime в том, что она тупо считает секунды с какого-то там числа в 18 веке и при сравнении #сегодня_вечером# и #завтра_утром# Вам выдаст правильный результат.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

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

Re: Период времени.

Сообщение Twister » 07.05.2010 (Пт) 17:39

Поля в данном случае должны быть не текстовыми, а с полноценной возможностью выбора времени. Эдакий TimeEdit. При этом они должны лишь отображать данные, а программа опираться на значения переменных в памяти. Не спрашивай почему так, это просто хороший тон программирования.

По поводу проблемы перескока через дни:
Тебе нужно не два поля "начало" и "конец", а список временных интервалов по дням недели. По типу планировщика.

А если с 16 часов этого дня и до 18 часов другого дня
Бессмыслица. В общем случае выходит, что играть запрещено круглые сутки. Если же тебе надо, к примеру, именно с 16 часов среды по 18 часов четверга, тогда делай как я сказал выше - план на неделю. В этом случае он будет выглядеть так:

Среда 16:00:00 - 23:59:59
Четверг 00:00:00 - 18:00:00
А я все практикую лечение травами...

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

Re: Период времени.

Сообщение Twister » 07.05.2010 (Пт) 17:40

А в Caption'ы и в Text'ы выводить таймером через Format.
Вот чего не надо точно делать, так это выводить по таймеру.
А я все практикую лечение травами...

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

Re: Период времени.

Сообщение Saturn.65 » 07.05.2010 (Пт) 17:59

Спасибо за советы! :) Мда. А я думал как по проще сделать, с комбобоксами. Время выбрал и готово... И потом подумал еще между делом: надо же свое, независимое время вести в программе. А то что получится? Системное время перевел и опять работай? Тут целая цепочка тянется. Пожалуй надо с этим проектом завязывать. :?
Главное, ребята, сердцем не стареть...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Период времени.

Сообщение Денис » 07.05.2010 (Пт) 18:20

Twister писал(а):
А в Caption'ы и в Text'ы выводить таймером через Format.
Вот чего не надо точно делать, так это выводить по таймеру.

Это точно. Это я заговорился.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

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

    TopList