|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2011, 23:30 | #11 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
у меня нормально все отображается(vs2008)... менял по всякому интервал, сверял с секундомером на телефоне=). В винде вобще они как-то странно у меня идут.
|
30.01.2011, 23:39 | #12 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
В 2010 всё было чёрным по чёрному
На 20 секундах он у меня дал отставание в полторы секунды. Думаю это реакция плохая. Ошибки во всяком случае в коде нету - протрассировал, вызывается, присваивает нормально Знаете что сделайте, чтоб плохую реакцию исключить. В процедурах старта и сброса выведите на форму текущее время
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
31.01.2011, 00:55 | #13 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
мне всё это не очень нравится, но я методом подбора подогнал млсекунды под реальные...
mlsec += 15.7 но так ведь не делается =) Последний раз редактировалось NiCola999; 31.01.2011 в 01:07. |
31.01.2011, 06:00 | #14 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Код:
Хотите нарисовать секундомер? Запустите таймер на 50-100 мс, и в каждом обращении вычисляйте разницу от страта: 1) нажали Страт, запомнили время GetSystemTime(), запустили таймер. 2) Когда таймер тикнул, взяли текущее время, сравнили с запомненным на шаге 1), вывели разницу на экран. Как сделать сравнение, думаю, понятно: вычислить, сколько прошло мс, секунд, минут, часов, дней и т.д. со времени старта. Можно по-простому GetTickCount() заюзать, но он раз в 49 дней переполняется, надо это учитывать, мало ли ) Ещё учтите, что и GetSystemTime() и GetTickCount() имеют разрешение примерно в 10 мс. Не думаю, что родится человек, который сможет это заметить, но это так, чтобы не удивляться, почему последовательные вызовы GetTickCount() могут 10 мс выдавать одно и то же значение, а потом прыгнуть сразу на 10. Так задумано. Если хочется большего разрешения, то есть timeGetTime() и timeBeginPeriod(). Ну и если совсем уж не хочется вычислять разницу между двумя датами, есть Multimedia Timers, вот они тикают строго как указано, но там у вас начнутся другие проблемы, если вы будете продолжать пытаться перерисовать лейбл 1000 раз в секунду )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Timer... | Teleport | Общие вопросы Delphi | 13 | 14.09.2011 17:02 |
Timer | Arhangel_bes | Помощь студентам | 2 | 27.10.2008 17:55 |
timer | ZYRGiX | Помощь студентам | 3 | 21.07.2008 15:15 |
Timer... | Roof | Общие вопросы Delphi | 11 | 11.10.2007 12:57 |
timer | Toxa | Компоненты Delphi | 6 | 06.12.2006 06:58 |