Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приостановка выполнения цикла. [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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо