Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Alexey-VB
-
- Обычный пользователь
-
-
- Сообщения: 61
- Зарегистрирован: 11.08.2006 (Пт) 15:10
Alexey-VB » 28.12.2006 (Чт) 10:40
Требуется временная задержка выполнения кода.
Тоесть код должен в одном месте сделать паузу, но при этом должны выполняться и другие функции.
Пробовал вот так:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
..........
DoEvents
Sleep (5000)
....................
Но в момент паузы вся прога останавливается, а мне нужно что бы только функция была в паузе.
Использование Timer отпадает, так как это будет громоздко. Потому как у меня много таких пауз и в разных функциях.
Плиз хелп.
-
alibek
-
- Большой Человек
-
-
- Сообщения: 14205
- Зарегистрирован: 19.04.2002 (Пт) 11:40
- Откуда: Russia
alibek » 28.12.2006 (Чт) 10:47
Тем не менее, либо таймер, либо второй поток.
Lasciate ogni speranza, voi ch'entrate.
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 30.12.2006 (Сб) 21:35
Народ, не мудрите... Таймеры, потоки... Неужели так сложно сделать это:
- Код: Выделить всё
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetTickCount Lib "kernel32" () As Long
Public Sub Wait(dwMilliseconds As Long)
Dim cnt As Long, LTime As Long
LTime = GetTickCount
Do While cnt < dwMilliseconds
DoEvents
cnt = cnt + GetTickCount - LTime
LTime = GetTickCount
Loop
End Sub
-
hCORe
-
- VB - Экстремал
-
-
- Сообщения: 2332
- Зарегистрирован: 22.02.2003 (Сб) 15:21
- Откуда: parent directory
-
hCORe » 31.12.2006 (Вс) 15:20
Несложно то несложно, но вот загрузка ЦП 100%. А так все ничего...
Моду создают модоки, а распространяют модозвоны.
-
AlexBlack
-
- Постоялец
-
-
- Сообщения: 324
- Зарегистрирован: 18.07.2005 (Пн) 19:14
- Откуда: Киефф, Юкрейн...
-
AlexBlack » 01.01.2007 (Пн) 15:59
тогда так:
- Код: Выделить всё
Do
Sleep( t_dis )
t = t + t_dis
If ( t > t_max ) Then Exit Do
Loop
-
tyomitch
-
- Пользователь #1352
-
-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 01.01.2007 (Пн) 16:16
AlexBlack писал(а):тогда так:
- Код: Выделить всё
Do
Sleep( t_dis )
t = t + t_dis
If ( t > t_max ) Then Exit Do
Loop
И в чём тогда отличие от одного большого слипа?
-
hCORe
-
- VB - Экстремал
-
-
- Сообщения: 2332
- Зарегистрирован: 22.02.2003 (Сб) 15:21
- Откуда: parent directory
-
hCORe » 01.01.2007 (Пн) 17:09
Вот-вот, теперь гораздо лучше. Хотя мне все равно больше нравится таймер
Моду создают модоки, а распространяют модозвоны.
-
AntonGV
-
- Бывалый
-
-
- Сообщения: 234
- Зарегистрирован: 24.05.2006 (Ср) 12:10
- Откуда: г. Пермь
-
AntonGV » 01.01.2007 (Пн) 17:15
Я делал так:
- Код: Выделить всё
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Delay(MilliSeconds As Long)
Dim old As Single
old = Timer
Do While (Timer - old) < MilliSeconds / 1000
DoEvents
Sleep 1
Loop
End Sub
зы. Чуть проще чем у keks-n
Если долго мучиться, что-нибудь получится
-
JohnK
-
- Постоялец
-
-
- Сообщения: 874
- Зарегистрирован: 03.08.2002 (Сб) 0:35
- Откуда: 48.02` 37.58`
-
JohnK » 03.01.2007 (Ср) 1:16
А если замутить что-то с флагом?
Тоесть в функции где нужна пауза:
- Код: Выделить всё
...
if Delay_Flag then exit sub (function)
...
А потом, смотря по какому условию у тебя идет пауза:
1) можно по таймеру
- Код: Выделить всё
Sub Timer1() ' Интервал 1000
nCount=nCount+1
if nCount>60 then
nCount=0
Delay_Flag= not Delay_Flag
end if
....
2) Вручную
- Код: Выделить всё
Sub Command_Click ' Кнопка Пауза
Delay_Flag= not Delay_Flag
...
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: Google-бот, SemrushBot, Yandex-бот и гости: 120