как показывать сколько секунд осталось?

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

как показывать сколько секунд осталось?

Сообщение DeMONiZ » 07.01.2009 (Ср) 16:45

есть код:

Dim intSecond As Long
Dim intDelay As Integer
intDelay = 30
intSecond = Timer
Do While Timer < intSecond + intDelay
DoEvents
Loop

который я использую как задержку в программе.
Вопрос: как сделать чтоб например в текстбоксе показывались оставшиеся секунды....ну или прошедшие секунды?

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: как показывать сколько секунд осталось?

Сообщение VBTerminator » 07.01.2009 (Ср) 18:08

"Элементарно, Ватсон"

Код: Выделить всё
Dim intSecond As Long
Dim intDelay As Integer
intDelay = 30
intSecond = Timer
Do While Timer < intSecond + intDelay
DoEvents
txtOstalosSecund = Int((intSecond + intDelay) - Timer) & " сек."
txtProshloSecund = Int(Timer - intSecond) & " сек."
Loop

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

Re: как показывать сколько секунд осталось?

Сообщение ANDLL » 07.01.2009 (Ср) 19:04

код конечно ужасен. Автору стоит заценить sleep и не грузить проц на 100%
мне кстати тоже "ходячий замок" поннравился:)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: как показывать сколько секунд осталось?

Сообщение DeMONiZ » 07.01.2009 (Ср) 20:47

ANDLL ну предложите что нибудь рациональное? ваш sleep проц то он не кушает а вот прога засыпает причем вся а мне это не нужно......конечно вроде можно как то сделать чтоб не вся но этого я не знаю.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: как показывать сколько секунд осталось?

Сообщение VBTerminator » 08.01.2009 (Чт) 14:20

ANDLL писал(а):Автору стоит заценить sleep и не грузить проц на 100%

1. У меня Pentium 4 и 512 мб оперативки, а проц нагружен максимум на 50%. А для современных двухъядерников это вообще не расход (ИМХО).
2.
DeMONiZ писал(а):ваш sleep проц то он не кушает а вот прога засыпает причем вся а мне это не нужно...

3. Я предлагаю то, с чем знаком, и что точно работает.

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: как показывать сколько секунд осталось?

Сообщение awl100Alex » 08.01.2009 (Чт) 14:57

VBTerminator
Твой код имеет некоторые недостатки...
Во-первых, действительно сильно загружается процессор.
Во-вторых, если вывести txtOstalosSecund или txtProshloSecund в текстбокс, как нужно автору топика, и параллельно выполнять какие-то вызовы, например, окно диалога Msgbox, то сообщение текстбокса застынут пока не закроешь msgbox.
Вложения
TimerCount.rar
VBTerminator...
(3.15 Кб) Скачиваний: 61

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: как показывать сколько секунд осталось?

Сообщение awl100Alex » 08.01.2009 (Чт) 14:58

Думаю, лучше использовать API-timer...
Вложения
TimerCount.rar
awl100Alex...
(3.39 Кб) Скачиваний: 70
TimerCountProject.rar
Project...
(1.62 Кб) Скачиваний: 74

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

Re: как показывать сколько секунд осталось?

Сообщение ANDLL » 08.01.2009 (Чт) 15:59

VBTerminator писал(а):А для современных двухъядерников это вообще не расход (ИМХО).

Нет это глупость. Две подбные проги загрузят проц на 100%
DeMONiZ писал(а):ваш sleep проц то он не кушает а вот прога засыпает причем вся а мне это не нужно...

Просто поставь в цикле перед doevents sleep(1)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: как показывать сколько секунд осталось?

Сообщение VBTerminator » 09.01.2009 (Пт) 11:19

ANDLL писал(а):Нет это глупость. Две подбные проги загрузят проц на 100%

Для теста запустил десять экземпляров проги на отсчёт. Согласен, проц грузится на 100%, но: никаких глюков - для теста парралельно юзал IE 7.0 с двумя вкладками - Яндексом и данной темой; uTorrent; EMule; DrWeb, не считая кучи драйверов + WinXP.

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

Re: как показывать сколько секунд осталось?

Сообщение MIT » 09.01.2009 (Пт) 13:25

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

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: как показывать сколько секунд осталось?

Сообщение iGrok » 09.01.2009 (Пт) 14:18

VBTerminator писал(а):Для теста запустил десять экземпляров проги на отсчёт. Согласен, проц грузится на 100%, но: никаких глюков - для теста парралельно юзал IE 7.0 с двумя вкладками - Яндексом и данной темой; uTorrent; EMule; DrWeb, не считая кучи драйверов + WinXP.

А ты ещё игру какую-нибудь запусти..
А как твоя прога будет работать на моём древнеодноядерном Celeron-D 2.54 ?

Блин. Помню, читал лет пять назад статью о том, почему у нас такая "гонка вооружений". О том, почему каждый год нужно покупать более новый и более мощный комп. О том, что десять лет назад процессоры были слабенькими, а память маленькой и дорогой. И все занимались благим делом - оптимизацией. И умудрялись писать для тех компов такие вещи, которые большинству современных "программеров" удастся запустить с нормальной производительностью дай бог на майнфрейме. А всё почему?
"Гм.. Жрёт 100% проца. Странно.. А, чёрт с ним. Работать вроде можно. А если мешать кому будет - пусть новый проц покупают. Нефиг на всяком старье сидеть. Ой. Памяти не хватает. Странно. Вроде прога маленькая, а уже гиг жрёт.. А, да ладно. Всё равно у всех минимум по два гига есть, а будет не хватать - ещё купят."
label:
cli
jmp label

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

Re: как показывать сколько секунд осталось?

Сообщение tyomitch » 09.01.2009 (Пт) 14:25

2iGrok: факт, что железо дешевеет быстрее, чем дешевеет труд программиста.

Когда-то вообще при отладке ползали с карандашом по простыне-распечатке, чтобы не занимать такой ерундой чудо-машину.
К этому, надеюсь, не предлагаешь вернуться?
Изображение

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: как показывать сколько секунд осталось?

Сообщение Williams » 09.01.2009 (Пт) 15:23

Про "Всего 50% загружен" позабавило :) Я щас парюсь чтобы прога не ела больше 5%, и то думаю, не многовато ли это для бекграунда? :mrgreen:
И вы думаете, что вас оставят в живых после прочтения этого поста?

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

Re: как показывать сколько секунд осталось?

Сообщение MIT » 09.01.2009 (Пт) 15:26

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

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: как показывать сколько секунд осталось?

Сообщение iGrok » 09.01.2009 (Пт) 15:29

tyomitch писал(а):2iGrok: факт, что железо дешевеет быстрее, чем дешевеет труд программиста.

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

Нет, конечно. =)
Скорее предлагаю делать разумную(по времени) оптимизацию, и не оставлять описанных в последней фразе ляпов касательно утечек памяти и бездумного пожирания ресурсов проца.
label:
cli
jmp label


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

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

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

    TopList