![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SetTimer
Andre © (2003-08-02 02:44:00)Всем Привет!
Мне надо сделать два события, одно из которых повторяется через 4-5 секунд, второе через 0.3-0.5 секунд после первого. Я сделал так в главном цикле программы:
SetTimer (Handle, 0, 4000, nil);
Sleep (300);
( Handle, 1, 4000, nil)
Всем Привет!
Мне надо сделать два события, одно из которых повторяется через 4-5 секунд, второе через 0.3-0.5 секунд после первого. Я сделал так в главном цикле программы:
SetTimer (Handle, 0, 4000, nil);
Sleep (300);
SetTimer (Handle, 1, 4000, nil);
При загрузке прложения система подзависает на 0.3 секунды, но это не страшно. Плохо то, что второй таймер при сильной загрузке проца запускается через время дольшее, чем 0.3 сек. Может кто нить подкинет идейку, как это исправить (или вообще выкинуть Sleep()). Спасибо.
andre (2003-08-05 02:24:00) [1]
Зы : я сделал так:
WM_TIMER : case wParam of
0 : begin
......
SetTimer (Handle, 1, 300, nil);
end;
1 : begin
....... KillTimer (Handle, 1);
end;
end;
вроде даже работает:))
Dakis (2003-08-03 08:59:00) [2]
Если тебе так важна точность типания, то советую заглянуть в Королевство дельфи www.delphikingdom.com Нам с свитках есть статья "Таймер который не подведёт". Сначала всё кажется сложным но потом как разберяшся тама такие финты делать можно(типа тикать каждые 4 секунды в понедельник с 12 ура до 4 ночи 18 чила 2003 года ;-))
andre (2003-08-03 02:39:00) [3]
зы: а как активировать/деактивировать таймер? (извините меня неграмотного). Неужели KillTimer?
Rouse_ (2003-08-02 08:22:00) [4]
А зачем Sleep? Да еще в главном цикле??? Что за цикл такой?
Не проще:SetTimer (Handle, 1, 4300, nil);?
И переустановка интервалов при срабатывании первого?
А если система загружена, то сообщение о срабатывании таймера, к сожалению, вы не получите (точнее, получите, но не вовремя). Если критично, придется реализовывать другой метод.
Желаю успехов
D ick (2003-08-02 03:15:00) [5]
На мой взгляд не плохой вариант выполнять через таймер, и активировать его если твое событие выполняется
default (2003-08-02 03:01:00) [6]
если второй таймер должен тикать каждую половину секунды, то можно обойтись одним таймером в твоём случае