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

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

Цикл по времени


Santik ©   (2006-07-07 16:03:00) 

Подскажите, как создать цикл по времени.
Т.е. мне нужно каждую секунду выполнять определенный блок операций.


SerJaNT   (2006-07-09 02:06:00) [1]


> Получится что через каждый интервал времени будут выполняться
> действия
> если проц успеет


Дык, а зачем на самом событии Timer устанавливать интервал?


Homo Sapiens   (2006-07-08 17:56:00) [2]


> И что получится?

Получится что через каждый интервал времени будут выполняться действия
если проц успеет


Ketmar   (2006-07-08 15:06:00) [3]

>begin...end ©   (08.07.06 14:40) [11]
ну и фиг с ним. судя по "страхованию", это не самое страшное в коде. %-)


begin...end   (2006-07-08 14:40:00) [4]

> StriderMan ©   (07.07.06 17:28) [6]

Страховка -- оно, конечно, хорошо, но каждый раз убивается и пересоздаётся таймер...


SerJaNT   (2006-07-08 13:38:00) [5]


> Homo Sapiens ©   (07.07.06 17:03) [5]
> procedure Timer1Timer...
> begin
>  timer1.interval:=...     //интервал времени
> //////////
> Здесь идут выполняемые действия
> ////////////
> end;


И что получится?


Ketmar   (2006-07-08 13:18:00) [6]

>Desdechado ©   (07.07.06 17:03) [4]
всё равно событие обработается не раньше окончания обработчика, если не вызывать GetMessage()/DispatchMessage() или Application.ProcessMessages().


parovoZZ   (2006-07-07 22:07:00) [7]

Ну если WinApi и цикл, то GetTickCount.


Desdechado   (2006-07-07 17:51:00) [8]

> это собственно значит что надо проверять реже
Это значит другое. Это значит, что при наличии сильнозагружающих систему программ возможно неуспевание других программ. И предсказать период для таймера тяжеловато.


StriderMan   (2006-07-07 17:28:00) [9]


> Desdechado ©   (07.07.06 17:03) [4]
> А если за секунду этот блок операций не уложится, то сработает
> еще одно событие начало блока и т.п.
> Итог, я думаю, понятен.

это собственно значит что надо проверять реже :)

а вообще я для страховки так делаю

procedure Timer1Timer...
begin
 timer1.Enabled := false
 ...//здесь все делается
 Timer1.Enabled := true;
end;


но так конечно интервал выполнятся не будет


Desdechado   (2006-07-07 17:03:00) [10]

А если за секунду этот блок операций не уложится, то сработает еще одно событие начало блока и т.п.
Итог, я думаю, понятен.


Homo Sapiens   (2006-07-07 17:03:00) [11]

procedure Timer1Timer...
begin
 timer1.interval:=...     //интервал времени
//////////
Здесь идут выполняемые действия
////////////
end;


Джо   (2006-07-07 16:53:00) [12]

> [2] Jeer ©   (07.07.06 16:52)

Ветка первоначально в WinAPI была :)


Jeer   (2006-07-07 16:52:00) [13]

или компонент TTimer


Джо   (2006-07-07 16:07:00) [14]

SetTimer


Наверх

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