Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
abs
-
- Новичок

-
-
- Сообщения: 41
- Зарегистрирован: 05.12.2002 (Чт) 1:09
abs » 29.08.2003 (Пт) 0:13
Я хочу проверить время работы цикла, включаю таймер в начале, и выключаю в конце, но результата не видно. Почему?
- Код: Выделить всё
Dim t%
Private Sub Command1_Click()
Timer1.Enabled = True
.
.
.
.
.
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Label1.Caption = t
t = t + 1
End Sub
-
abs
-
- Новичок

-
-
- Сообщения: 41
- Зарегистрирован: 05.12.2002 (Чт) 1:09
abs » 29.08.2003 (Пт) 11:39
Конечно установлен... Более того, если таймер сразу установить в Enabled = True, то он прекрасно работает, а в цикле не хочет включаться

-
Aleksej
-
- Продвинутый пользователь

-

-
- Сообщения: 191
- Зарегистрирован: 03.06.2003 (Вт) 9:58
Aleksej » 29.08.2003 (Пт) 11:53
Я попробывал так, всё работает:
- Код: Выделить всё
Option Explicit
Dim t%
Private Sub Command1_Click()
Dim i As Long
Timer1.Enabled = True
For i = 0 To 1000000
DoEvents
Next i
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Label1.Caption = t
t = t + 1
End Sub
Может дело в DoEvents

-
abs
-
- Новичок

-
-
- Сообщения: 41
- Зарегистрирован: 05.12.2002 (Чт) 1:09
abs » 29.08.2003 (Пт) 12:22
Что-то странно....
- Код: Выделить всё
Private Sub Command1_Click()
Label1.Caption ="Start"
.
.
.
.
.
Label1.Caption ="Finish"
End Sub
тоже не работает...
-
abs
-
- Новичок

-
-
- Сообщения: 41
- Зарегистрирован: 05.12.2002 (Чт) 1:09
abs » 29.08.2003 (Пт) 12:26
Спасибо!

-
Aleksej
-
- Продвинутый пользователь

-

-
- Сообщения: 191
- Зарегистрирован: 03.06.2003 (Вт) 9:58
Aleksej » 29.08.2003 (Пт) 12:30
Попробуй установить свойство Enable=False, а при запуске процедуры устанавливай True
-
Шурик
-
- Самогонщик

-

-
- Сообщения: 1657
- Зарегистрирован: 30.06.2003 (Пн) 13:27
- Откуда: из запоя :))))) Матных сообщений: 972
-
Шурик » 01.09.2003 (Пн) 15:10
Я точно не знаю но помойму это глюк!!
У меня такая же байда была!!!
Попробуй вместо:
Timer1.Enabled = True
вот это:
Timer1.Enabled = 1
Должно вроде заработать!!
У меня по крайне мере заработало!!!
-
boevik
-
- Обычный пользователь

-
-
- Сообщения: 72
- Зарегистрирован: 23.07.2002 (Вт) 11:44
- Откуда: Israel
-
boevik » 01.09.2003 (Пн) 15:27
Это не глюк.
Во время цикла не происходит обработка сообщений программы.
А таймер это именно сообщение для программы сделать то, что записано в Timer1_Timer.
Поэтому когда цикл запускается с командой DoEvents внутри цикла, происходит обработка кода в Timer1_Timer.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 12