Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 23:30   #11
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

у меня нормально все отображается(vs2008)... менял по всякому интервал, сверял с секундомером на телефоне=). В винде вобще они как-то странно у меня идут.
Изображения
Тип файла: png screensec.PNG (4.7 Кб, 124 просмотров)
NiCola999 вне форума Ответить с цитированием
Старый 30.01.2011, 23:39   #12
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

В 2010 всё было чёрным по чёрному
На 20 секундах он у меня дал отставание в полторы секунды. Думаю это реакция плохая. Ошибки во всяком случае в коде нету - протрассировал, вызывается, присваивает нормально
Знаете что сделайте, чтоб плохую реакцию исключить. В процедурах старта и сброса выведите на форму текущее время
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 31.01.2011, 00:55   #13
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

мне всё это не очень нравится, но я методом подбора подогнал млсекунды под реальные...

mlsec += 15.7

но так ведь не делается =)
Вложения
Тип файла: rar MyFirstWin.rar (9.1 Кб, 25 просмотров)

Последний раз редактировалось NiCola999; 31.01.2011 в 01:07.
NiCola999 вне форума Ответить с цитированием
Старый 31.01.2011, 06:00   #14
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
this->timer1->Interval = 1;
не издевайтесь над виндой, не будет она для вас обрабатывать строго 1000 сообщений в секунду, особенно если в каждом обработчике делать label1->Text = ...

Хотите нарисовать секундомер? Запустите таймер на 50-100 мс, и в каждом обращении вычисляйте разницу от страта:

1) нажали Страт, запомнили время GetSystemTime(), запустили таймер.
2) Когда таймер тикнул, взяли текущее время, сравнили с запомненным на шаге 1), вывели разницу на экран. Как сделать сравнение, думаю, понятно: вычислить, сколько прошло мс, секунд, минут, часов, дней и т.д. со времени старта.

Можно по-простому GetTickCount() заюзать, но он раз в 49 дней переполняется, надо это учитывать, мало ли )

Ещё учтите, что и GetSystemTime() и GetTickCount() имеют разрешение примерно в 10 мс. Не думаю, что родится человек, который сможет это заметить, но это так, чтобы не удивляться, почему последовательные вызовы GetTickCount() могут 10 мс выдавать одно и то же значение, а потом прыгнуть сразу на 10. Так задумано.

Если хочется большего разрешения, то есть timeGetTime() и timeBeginPeriod(). Ну и если совсем уж не хочется вычислять разницу между двумя датами, есть Multimedia Timers, вот они тикают строго как указано, но там у вас начнутся другие проблемы, если вы будете продолжать пытаться перерисовать лейбл 1000 раз в секунду )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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