Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Вниз

таймер и процедура   Найти похожие ветки 

 
delphiForever   (2007-09-13 21:19) [0]

если взять таймер который тикает 100мс и выполняет процедуру PROC_1 которая выполняется припустим 500мс. Что произойдет если за 500 мс таймер тикнет 5 раз - 5 раз будет выполнена процедура PROC_1.
вопрос: нужно избегать подобных ситуаций или PROC_1 выполнится только раз?


 
Anatoly Podgoretsky ©   (2007-09-13 21:28) [1]

> delphiForever  (13.09.2007 21:19:00)  [0]

А ты проверь


 
delphiForever   (2007-09-13 21:30) [2]


> Anatoly Podgoretsky ©   (13.09.07 21:28) [1]
> > delphiForever  (13.09.2007 21:19:00)  [0]
>
> А ты проверь

думал в принцыпе, но поленился думаю спрошу


 
Вася Правильный   (2007-09-13 22:24) [3]

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


 
{RASkov} ©   (2007-09-13 22:27) [4]

> [3] Вася Правильный   (13.09.07 22:24)

А смысл тогда в этом таймере ? :)


 
S@shka ©   (2007-09-13 22:29) [5]


> {RASkov} ©   (13.09.07 22:27) [4]
> > [3] Вася Правильный   (13.09.07 22:24)
>
> А смысл тогда в этом таймере ? :)


Смысл в таймере - повторно запустить на выполнение КОД


 
Palladin ©   (2007-09-13 22:37) [6]

тогда какой смысл в таймере?
While True Do


 
{RASkov} ©   (2007-09-13 22:37) [7]

> [5] S@shka ©   (13.09.07 22:29)
> Смысл в таймере - повторно запустить на выполнение КОД

Угу... смысл велик :)
А кроме как таймера, больше никак....

Хотя в случае [3] - между тактами выполнения процедуры, которая вызывается по таймеру, имеется промежуток времени, равный интервалу таймера, тогда фик знает.... может и есть смысл....:)


 
S@shka ©   (2007-09-13 22:40) [8]


> тогда какой смысл в таймере?
> While True Do


- И что?
 While True Do
 begin
   DoMyprocedure;
   sleep (TimerInterval);
 end;

 И висим на sleep ? ))


 
{RASkov} ©   (2007-09-13 22:42) [9]

> [8] S@shka ©   (13.09.07 22:40)
> И висим на sleep ? ))

А Sleep тут зачем? В качестве слипа пойдет DoMyprocedure; :)
А вот Application.ProcessMessage не помешал бы....


 
Palladin ©   (2007-09-13 22:44) [10]

с хрена ли? ))
Var
probalyEndOfIntervalCounter:Integer;
While True Do
probalyEndOfIntervalCounter:=1;
Begin
 Sleep(100);
 Inc(probalyEndOfIntervalCounter);
 If probalyEndOfIntervalCounter=TimerInterval div 1000 Then
  Begin
   DoMyprocedure;
   probalyEndOfIntervalCounter:=1;
  End;
 If (ThisIsTheEndOfWorld) or (Application.Terminated) The Break;
End;


 
Palladin ©   (2007-09-13 22:44) [11]


> {RASkov} ©   (13.09.07 22:42) [9]

ах.. тыть... его я и забыл... вставить после sleep(100) :)


 
S@shka ©   (2007-09-13 22:45) [12]

По этой идеологии и VCL не надо использовать - кнопку самому мона нарисовать.


 
Palladin ©   (2007-09-13 22:47) [13]

млин... короче до фига чего забыл...

Var
probalyEndOfIntervalCounter:Integer;
While True Do
probalyEndOfIntervalCounter:=1;
Begin
Sleep(10);
Application.ProcessMessages;
Inc(probalyEndOfIntervalCounter);
If probalyEndOfIntervalCounter=TimerInterval div 10 Then
 Begin
  DoMyprocedure;
  probalyEndOfIntervalCounter:=1;
 End;
If (ThisIsTheEndOfWorld) or (Application.Terminated) Then Break;
End;

и вообще все это ерунда...


 
Palladin ©   (2007-09-13 22:49) [14]


> While True Do
> probalyEndOfIntervalCounter:=1;
> Begin


млин.. хоть на башорг отправляй... переместить друг с другом две строчки



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

Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.051 c
15-1189831668
Aller
2007-09-15 08:47
2007.10.14
порты в freebsd


2-1189858892
mahab
2007-09-15 16:21
2007.10.14
Сообщения


15-1189884398
syte_ser78
2007-09-15 23:26
2007.10.14
bde + vista


2-1190098194
artem779
2007-09-18 10:49
2007.10.14
проблема с *.INI


15-1188316241
Vlad Oshin
2007-08-28 19:50
2007.10.14
критерии научности





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский