| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > установка таймера без формы |
| Автор: BLACK_KOT 14.4.2012, 23:20 | ||
нажатие клавиши отлавливает на отлично, а вот таймер не запускается. помогите разобраться |
| Автор: kami 15.4.2012, 10:58 | ||
То есть обработка сообщений в любом случае нужна. |
| Автор: BLACK_KOT 15.4.2012, 23:04 |
| то есть если я не создаю формы - я не могу обрабатывать сообщения, а значит не могу и создавать таймеры? печалька.. выхода вообще нет? |
| Автор: Ne1tr1n0 16.4.2012, 12:51 |
| Помимо обычного есть куда других таймеров. Например http://www.delphisources.ru/pages/faq/base/create_mm_timer.html(timeSetEvent/timeKillEvent). Ещё есть Waitable-таймер (CreateWaitableTimer), его можно попробовать. |
| Автор: Ne1tr1n0 16.4.2012, 13:36 | ||
Вот вариант адаптации твоего кода к мультимедийному таймеру:
|
| Автор: BLACK_KOT 16.4.2012, 14:55 | ||
что-то у меня работает код предыдущий не правильно.
через 5 секунд срабатывает таймер, и он по идее должен ждать ещё 5 секунд и снова выполнять процедуру. но после первого срабатывания таймер начинает постоянно выполнять процедуру, так что я не успевай закрыть "hello" сообщение, как тут же вылезает ещё одно такое же. то есть не работает периодичность. |
| Автор: Ne1tr1n0 16.4.2012, 15:39 | ||
| А, да, пардон, это потому что пока нажата кнопка код успевает выполниться несколько раз и соответственно несколько таймеров создается. Можно завести переменную-флаг, и проверять её каждый раз перед установкой таймера помимо нажатости клавиши. Либо проверять переменную mmResult перед вызовом timeSetEvent, но надежднее имхо свою переменную завести. Кстати что за кнопка такая с кодом 75? Что-то не нашёл среди констант такую. Вот так вроде нормально срабатывает.
|
| Автор: BLACK_KOT 16.4.2012, 17:37 |
| ну точно, ё маё, я сам ступил. спасибо огромное, а кнопка 75 это просто клавиша K английская. она для примера тут. |