Как в Visual Basic создать цикл.
Голубев Евгений
i> Как в Visual Basic написать цикл?
q> Какой?
i> Чтото вроде таймера, короче этот цикл должен быть бесконечным и чтоб при его выполнении приложение не висло.
q> Это делается с помощью события формы - Form_Activate()
i> А можно подробней.
q> Нужно создать приватную функцию (private function) и private sub. В событии Form_Activate() нужно вписать:
- Call loops - это обращение к private function loops
- DoEvents - вот она самая главная
- Call Looper - а это к private sub
В private sub Looper написать:
Do While Form1.Visible - пока форма видна Call loops - обращение к private function loops DoEvents Loop
q> Всё готово! Цикл будет происходить в функции loops. Надеюсь понятно?
i> Немного, напиши полностью весь пример.
q> Вот:
Private Sub Form_Activate() DoEvents Call looper End Sub Private Sub looper() Do While Form1.Visible Call loops DoEvents Loop End Sub Private Function loops() End Function
q> Всё
Оставить комментарий
Комментарии
1.
8 июля 2005, 15:23:08
Идея нормална но не хорошая я думаию лучше исползовать WinAPI а имено процедуру Sleep потом
проста вставляите его в безконечни цикл вместе с DoEvents и с указанием длителности паузи в
милисекундах
вот пример:
с начала обявлаете процедуру
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
создаете на форм Label и CommandButton
и впроцедуру CommandButton прописиваете
Private Sub Command1_Click()
Do
Call Sleep(1000)
Label1.Caption = Val(Lbl.Caption) + Val(1)
DoEvents
Loop
End Sub
проста вставляите его в безконечни цикл вместе с DoEvents и с указанием длителности паузи в
милисекундах
вот пример:
с начала обявлаете процедуру
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
создаете на форм Label и CommandButton
и впроцедуру CommandButton прописиваете
Private Sub Command1_Click()
Do
Call Sleep(1000)
Label1.Caption = Val(Lbl.Caption) + Val(1)
DoEvents
Loop
End Sub
2.
+1 / -0
26 августа 2004, 16:15:56
в принципе DoEvents понятен,
когда нужно - пользуюсь - в небольших циклах, иначе использую таймер, хотя это иногда и не очень удобно
причина: в цикле с DoEvents с приложением вроде можно работать, но таскменеджер показывает загрузку проца 100%
не совсем понятен механизм
DoEvents, - пробовал запускать 100 циклов
Do While 1 = 1
DoEvents
Loop
все видны в CallStack, переполнения нет,
может я нерпав, что не использую - но все таки неприятно видеть загруженный процессор
заранее спасибо ответившим
когда нужно - пользуюсь - в небольших циклах, иначе использую таймер, хотя это иногда и не очень удобно
причина: в цикле с DoEvents с приложением вроде можно работать, но таскменеджер показывает загрузку проца 100%
не совсем понятен механизм
DoEvents, - пробовал запускать 100 циклов
Do While 1 = 1
DoEvents
Loop
все видны в CallStack, переполнения нет,
может я нерпав, что не использую - но все таки неприятно видеть загруженный процессор
заранее спасибо ответившим
3.
26 августа 2004, 15:17:19
в принципе DoEvents понятен,
когда нужно - пользуюсь - в небольших циклах, иначе использую таймер, хотя это иногда и не очень удобно
причина: в цикле с DoEvents с приложением вроде можно работать, но таскменеджер показывает загрузку проца 100%
не совсем понятен механизм
DoEvents, - пробовал запускать 100 циклов
Do While 1 = 1
DoEvents
Loop
все видны в CallStack, переполнения нет,
может я нерпав, что не использую - но все таки неприятно видеть загруженный процессор
заранее спасибо ответившим
когда нужно - пользуюсь - в небольших циклах, иначе использую таймер, хотя это иногда и не очень удобно
причина: в цикле с DoEvents с приложением вроде можно работать, но таскменеджер показывает загрузку проца 100%
не совсем понятен механизм
DoEvents, - пробовал запускать 100 циклов
Do While 1 = 1
DoEvents
Loop
все видны в CallStack, переполнения нет,
может я нерпав, что не использую - но все таки неприятно видеть загруженный процессор
заранее спасибо ответившим