Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

Цикл по времени   Найти похожие ветки 

 
Santik   (2006-07-07 16:03) [0]

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


 
Джо ©   (2006-07-07 16:07) [1]

SetTimer


 
Jeer ©   (2006-07-07 16:52) [2]

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


 
Джо ©   (2006-07-07 16:53) [3]

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

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


 
Desdechado ©   (2006-07-07 17:03) [4]

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


 
Homo Sapiens ©   (2006-07-07 17:03) [5]

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


 
StriderMan ©   (2006-07-07 17:28) [6]


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

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

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

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


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


 
Desdechado ©   (2006-07-07 17:51) [7]

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


 
parovoZZ ©   (2006-07-07 22:07) [8]

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


 
Ketmar ©   (2006-07-08 13:18) [9]

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


 
SerJaNT ©   (2006-07-08 13:38) [10]


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


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


 
begin...end ©   (2006-07-08 14:40) [11]

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

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


 
Ketmar ©   (2006-07-08 15:06) [12]

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


 
Homo Sapiens ©   (2006-07-08 17:56) [13]


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

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


 
SerJaNT ©   (2006-07-09 02:06) [14]


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


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



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
2-1152519393
fast2
2006-07-10 12:16
2006.07.30
Как узнать, что строка состоит из сивмолов верхнего регистра?


15-1151567937
Holy
2006-06-29 11:58
2006.07.30
NEC ND-3551A. Disk T@2 и LabelFlash.


15-1151557954
DelphiN!
2006-06-29 09:12
2006.07.30
Получение номера с пластиковой карты через PC/2 CardReader


15-1151580530
pavel_guzhanov
2006-06-29 15:28
2006.07.30
Вопрос к крымчанам


2-1152372331
atruhin
2006-07-08 19:25
2006.07.30
Нужна функция для округления чисел до опреленного значимого знака