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

Вниз

SetTimer   Найти похожие ветки 

 
Andre   (2003-08-02 02:44) [0]

Всем Привет!
Мне надо сделать два события, одно из которых повторяется через 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()). Спасибо.


 
default   (2003-08-02 03:01) [1]

если второй таймер должен тикать каждую половину секунды, то можно обойтись одним таймером в твоём случае


 
D ick   (2003-08-02 03:15) [2]

На мой взгляд не плохой вариант выполнять через таймер, и активировать его если твое событие выполняется


 
Rouse_   (2003-08-02 08:22) [3]

А зачем Sleep? Да еще в главном цикле??? Что за цикл такой?
Не проще: SetTimer (Handle, 1, 4300, nil);?
И переустановка интервалов при срабатывании первого?

А если система загружена, то сообщение о срабатывании таймера, к сожалению, вы не получите (точнее, получите, но не вовремя). Если критично, придется реализовывать другой метод.

Желаю успехов


 
andre   (2003-08-03 02:39) [4]

зы: а как активировать/деактивировать таймер? (извините меня неграмотного). Неужели KillTimer?


 
Dakis   (2003-08-03 08:59) [5]

Если тебе так важна точность типания, то советую заглянуть в Королевство дельфи www.delphikingdom.com Нам с свитках есть статья "Таймер который не подведёт". Сначала всё кажется сложным но потом как разберяшся тама такие финты делать можно(типа тикать каждые 4 секунды в понедельник с 12 ура до 4 ночи 18 чила 2003 года ;-))


 
andre   (2003-08-05 02:24) [6]

Зы : я сделал так:

WM_TIMER : case wParam of

0 : begin
......
SetTimer (Handle, 1, 300, nil);
end;

1 : begin
....... KillTimer (Handle, 1);
end;

end;

вроде даже работает:))



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

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

Наверх




Память: 0.46 MB
Время: 0.008 c
1-27536
Faust
2003-09-29 21:56
2003.10.09
KeyPressed


1-27519
k_len
2003-09-26 11:03
2003.10.09
Форма


1-27501
SergeyM
2003-09-25 17:43
2003.10.09
Заполнение массива


14-27700
hawkins
2003-09-22 06:48
2003.10.09
почему у меня в Delphi6 в help-е предметный указатель пустой?


9-27293
[Baradoo]
2003-03-15 22:14
2003.10.09
Экспорт из 3d Max





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский