![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приостановка выполнения цикла. [D6, WinXP]
Ryser © (2002-10-07 16:41:00)Есть цикл на OnTimer.
Нужно каким-то образом задержать переход на новый круг выполнения цикла на некоторое кол-во времени.
Естественно, Break и т.п. не уместны.
Как быть?
Ryser (2002-10-07 17:16:00) [1]Вот такая процедура. Нужно как-то задержать переход к следующей записи в ЛистБокс
begin
//****** цикл перемещения по узлам
for I := 0 to ListBox1.Items.Count-1 do
begin
//
AFrolov (2002-10-07 16:56:00) [2]1. Цикл надо делать в отдельном потоке - все приложение не будет подвешиваться.
2. Либо while (условие ожидания) -вместо sleep
Application.ProcessMessages.
Демонов Е.В. (2002-10-07 16:55:00) [3]procedure wait(mili:cardinal);
var t:Cardinal;
begin
t:=getTickCount;
while getTickCount<t+Mili do
application.ProcessMessages;
end;
Может так ? попробуй.
Внук (2002-10-07 16:51:00) [4]Так надо бы поподробнее рассказать. В частности - требуется остановить цикл в пределах одного тика таймера или пропустить несколько тиков, зачем останавливать, может, выделить цикл в отдельный поток, может, флагами поиграть...
Ryser (2002-10-07 16:47:00) [5]Похоже на то. Но эффект не совсем тот. Sleep вешает все приложение, а не конкретно цикл.
Внук (2002-10-07 16:42:00) [6]Sleep?