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

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

Вопрос связан с перехватом времени [D7, WinXP]


Страницы:   1 2

-=Germe$=- ©   (2006-07-14 16:22:00) 

Как перехватить изменение времени без использования TTimer


Ketmar   (2006-07-18 20:54:00) [1]

>Palladin ©   (18.07.06 13:49) [24]
не будет грузить. но может "заикаться". т.е. вызовы могут теряться, если система сильно загружена. впрочем, "это уже совсем другая история" (ц), и решается по-другому. %-)


Palladin   (2006-07-18 13:49:00) [2]


> Dib@zol

Да ёшкин лес, разница между сравнением двух GetTickCount и двух переменных TDateTime практически никакая. И он в юните Windows.


> -=Germe$=- ©

Сомневаюсь что TTimer с установленным интервалом в 1000 мс будет жутко грузить процессор.


Dib@zol   (2006-07-18 13:45:00) [3]

Да ёшкин лес, используй GetTickCount!!!! Помоему он в юните MMSystem...


begin...end   (2006-07-14 20:29:00) [4]

> -=Germe$=- ©   (14.07.06 19:33) [16]

Зачем постоянно сверять? Установите соответствующий интервал таймера, чтобы он сработал один раз, когда нужное событие наступит, и всё. Если по каким-то причинам не устраивает TTimer (который является обёрткой SetTimer), можно использовать CreateWaitableTimer/SetWaitableTimer.


Zeqfreed   (2006-07-14 19:52:00) [5]

> [20] -=Germe$=- ©   (14.07.06 19:50)

Все остается в силе. Если уж процессору будет некогда выполнять событие, то его не выполнить никаким способом.


-=Germe$=-   (2006-07-14 19:50:00) [6]

А если машинка слабая?


Zeqfreed   (2006-07-14 19:47:00) [7]

> [18] -=Germe$=- ©   (14.07.06 19:44)

Точности обычного таймера для этого вполне хватит. Абсолютнойточности в Windows не добиться.


-=Germe$=-   (2006-07-14 19:44:00) [8]

В определенное время должно произоити событие(сам его напишу)... Нужно это время с точностью до секунды схватить


Zeqfreed   (2006-07-14 19:37:00) [9]

-=Germe$=- ©   (14.07.06 19:33) [16]

Поэтому я и спрашиваю в чем состоит цель «перехвата», чтобы подсказать наиболее подходящее решение.


-=Germe$=-   (2006-07-14 19:33:00) [10]

ПОстоянно сверять время в TTimer не самый лучший вариант.... Можно пропустить нужное событие....


Zeqfreed   (2006-07-14 19:30:00) [11]

> [14] -=Germe$=- ©   (14.07.06 19:26)

TTimer сам по себе ничего не грузит. Если что-то и может загружать процессор, то это тело события OnTimer, целиком подвластное к изменению программистом.


-=Germe$=-   (2006-07-14 19:26:00) [12]


> Какая стоит задача? Для чего это нужно? И почему не удовлетворяет
> TTimer?

Проц грузит...


Zeqfreed   (2006-07-14 19:25:00) [13]

> [12] -=Germe$=- ©   (14.07.06 19:22)

Какая стоит задача? Для чего это нужно? И почему не удовлетворяет TTimer?


-=Germe$=-   (2006-07-14 19:22:00) [14]

Факт изменения системного времени на 1 секунду было 00:00:00 стало 00:00:01


Zeqfreed   (2006-07-14 18:12:00) [15]

procedure TimeChangeHook();
begin
 ShowMessage('Произошло очередное изменение времени!');
end;

while true do TimeChangeHook();


StriderMan   (2006-07-14 17:32:00) [16]

че-то туплю...
достаточно TThread со sleep'ом


StriderMan   (2006-07-14 17:26:00) [17]


> Не боишься загрузить компьтер на полную только обработкой
> этого цикла?

sleep туда пихнуть


Desdechado   (2006-07-14 17:25:00) [18]

> цикл сравнения времени
Не боишься загрузить компьтер на полную только обработкой этого цикла?


StriderMan   (2006-07-14 17:22:00) [19]

Thread, в нем цикл сравнения времени начала цикла(DateTime) с Now


begin...end   (2006-07-14 17:22:00) [20]

Что значит "перехватить изменение времени"?


Страницы:   1 2

Наверх

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