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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 21:00   #1
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию timer(vc++)

Неправильно работает секундомер (секунда не похожа на секунду)
может быть время на ToString много уходит?
Код:
private: System::Void timer_Tick(System::Object^  sender, System::EventArgs^  e) {
					 static int mlsec = 0, sec = 0, min = 0, hour = 0;					 					                      
					 String ^s_zero, ^m_zero, ^h_zero, ^mls_zero;
					 h_zero = hour < 10 ? "0" : "";
					 m_zero = min < 10 ? "0" : "";
					 s_zero = sec < 10 ? "0" : "";
					 mls_zero = mlsec < 10 ? "0" : "";
					 label1->Text = h_zero + hour.ToString() + ":" + m_zero + min.ToString() + ":" +
						            s_zero + sec.ToString()  + ":" + mls_zero + mlsec.ToString();					 			                    
                                         mlsec++;
					 if(mlsec == 100){
						 sec++;
						 mlsec = 0;
					 }
					 if(sec == 60){
						 min++;
						 sec = 0;
					 }
					 if(min == 60){
						 hour++;
						 min = 0;
					 }					 					 
}

Последний раз редактировалось NiCola999; 30.01.2011 в 21:03.
NiCola999 вне форума Ответить с цитированием
Старый 30.01.2011, 21:11   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Хммм, ну может mlsec - это миллисекунда, тысячная, а у Вас 100 стоит в проверке
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.01.2011, 21:26   #3
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

тогда еще хуже =). Проблема в том, что наоборот медленно секунда идет
NiCola999 вне форума Ответить с цитированием
Старый 30.01.2011, 21:32   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

а у Вас каждую миллисекунду эта функция вызывается? Насколько я знаю, в винде таймеры с интервалом меньше 40 миллисекунд работают плохо. Может, просто интервал зададите побольше, всё равно никто не успеет прочитать, сколько там миллисекунд натикало
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.01.2011, 22:04   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

поставил интервал 50 млсек и изменил в коде:
Код:
mlsec += 50;
....
if(mlsec == 1000){
...
}
разницы не вижу)
NiCola999 вне форума Ответить с цитированием
Старый 30.01.2011, 22:09   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Я немного не это имел ввиду - эта функция у Вас ведь откуда-то вызывается. Вот и посмотрите, какой интервал у таймера, вызывающего её. В самой функции ошибки я не вижу, да и сложно в таком простом коде её допустить
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.01.2011, 22:16   #7
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

так я про таймер и говорю, изначально стоял интервал 1, потом поставил 50
NiCola999 вне форума Ответить с цитированием
Старый 30.01.2011, 22:19   #8
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Сорри, не замеил начало предложения
Скиньте проект, трассировкой думаю всё быстрее решится
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.01.2011, 22:42   #9
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

вот )
Вложения
Тип файла: rar MyFirstWin.rar (8.2 Кб, 13 просмотров)

Последний раз редактировалось NiCola999; 30.01.2011 в 22:47.
NiCola999 вне форума Ответить с цитированием
Старый 30.01.2011, 23:26   #10
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Вы сейчас будете долго смеяться и биться головой об стену - на чёрном фоне не видно чёрных букв
Попробуйте немного поменять интервал - то ли у меня с реакцией плохо, то ли на маленьких интервалах прога запаздывает, то ли наоборот - часы виндовые спешат
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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