| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Секундомер |
| Автор: MacTep 5.3.2006, 16:09 |
| Нужно реализовать секундомер с точностью до сотых секунды. А вот как это сделать, не пойму. При помощи обыкновенного таймера не получается, как-то странно он тормозит. Какие есть предложения по этому вопросу? |
| Автор: Albinos_x 5.3.2006, 17:27 |
| вопрос неоднакратно поднимался пользуемся поиском.... кроме того этот вопрос ели не ошибаюсь освещён в DRKB... |
| Автор: SoWa 5.3.2006, 20:36 |
| GetTickCount- им и пользуйся. |
| Автор: MacTep 5.3.2006, 23:50 |
| Пользуюсь... Но ведь при проверке того, сколько уже времени прошло, нужно сверяться с таймером. А таймер сильно отстает или неправильно идет вообще. Можно пример... В DRKB такой статьи я не нашел. |
| Автор: Albinos_x 6.3.2006, 00:19 | ||
| как я понял человек хочет сделать собственный таймер... --------- ну так создай отдельный поток и в нем проверяй GetTickCount, например:
|
| Автор: Sunvas 12.3.2006, 02:28 |
| Кстати, также в потоке можно функцию в While-ом, а в ней пользоваться процедурой Sleep. Как показывает практика, этот метод один из самый точных. |
| Автор: former 12.3.2006, 14:14 | ||||||
Для начала описываешь процедуру, которая будет вызываться по сообщению от таймера :
а дальше в программе (например по нажатию кнопки) создаешь Таймер и вешаешь на него созданную процедуру
Подробности смотри в Help. Hу и в конце убиваешь таймер
И все. Точность этого способа до 1 мсек. минимальный интервал времени можно задавать 1 мсек. Обрати внимание на то, что все CALLBACK-функции, вызываемые Windows, должны использовать соглашение о вызовах stdcall. |
| Автор: MacTep 13.3.2006, 23:37 |
| На torry.net нашел кучу полезных компонентов для работы со временем. Сразу проблема исчезла сама собой. Спасибо за обсуждение! |