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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2014, 05:18   #1
Luchfan12
Пользователь
 
Регистрация: 01.03.2014
Сообщений: 37
По умолчанию Пишу секундомер,проблема в том,что он неккоректно переводит минуты в часы.Что нужно исправить чтобы он правильно переводил минуты

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit6.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm6 *Form6;
//---------------------------------------------------------------------------
__fastcall TForm6::TForm6(TComponent* Owner)
	: TForm(Owner)
{
Timer1->Enabled = false;
Timer1->Interval = 10;
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Button1Click(TObject *Sender)
{
Timer1->Enabled = true;
Button1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Button3Click(TObject *Sender)
{
hours = 0;
min = 0;
sec = 0;
msec = 0;
Label1->Caption = "00";
Label2->Caption = "00";
Label3->Caption = "00";
Label4->Caption = "00";
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Button2Click(TObject *Sender)
{
Timer1->Enabled = false;
Button1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Timer1Timer(TObject *Sender)
{
if ( msec < 99 )
msec++;
else
{
msec = 0;
if ( sec < 59)
sec++;
else
{
sec = 0;
min++;
Label2->Caption = "0" + IntToStr(min);
}
if ( min < 59)
min++;
else
{
min = 0;
hours++;
Label1->Caption = "0" + IntToStr(hours);
}
if (sec <= 9)
Label3->Caption = "0" + IntToStr(sec);
else
Label3->Caption = IntToStr(sec);
}
if (msec <=9)
Label4->Caption = "0" + IntToStr(msec);
else
Label4->Caption = IntToStr(msec);
}

//---------------------------------------------------------------------------
Luchfan12 вне форума Ответить с цитированием
Старый 23.10.2014, 06:57   #2
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,988
Сообщение

Код:
void __fastcall TForm6::Timer1Timer(TObject *Sender)
{
if ( msec < 99 )
msec++;
else
{
msec = 0;
if ( sec < 59)
sec++;
else
{
sec = 0;
min++;
Label2->Caption = "0" + IntToStr(min);
}
if ( min < 59)
min++;
else
{
min = 0;
hours++;
Label1->Caption = "0" + IntToStr(hours);
}
if (sec <= 9)
Label3->Caption = "0" + IntToStr(sec);
else
Label3->Caption = IntToStr(sec);
}
if (msec <=9)
Label4->Caption = "0" + IntToStr(msec);
else
Label4->Caption = IntToStr(msec);
}
Попробуй так:

Код:
void __fastcall TForm6::Timer1Timer(TObject *Sender)
{
if ( msec < 99 )
++msec;
else
{
msec = 0;
if ( sec < 59)
++sec;
else
{
sec = 0;
++min;
Label2->Caption = "0" + IntToStr(min);
}
if ( min < 59)
++min;
else
{
min = 0;
++hours;
Label1->Caption = "0" + IntToStr(hours);
}
if (sec <= 9)
Label3->Caption = "0" + IntToStr(sec);
else
Label3->Caption = IntToStr(sec);
}
if (msec <=9)
Label4->Caption = "0" + IntToStr(msec);
else
Label4->Caption = IntToStr(msec);
}
А вообще, нет у меня доверия к Borland C++ ни какого...
vasek123 вне форума Ответить с цитированием
Старый 23.10.2014, 09:54   #3
Luchfan12
Пользователь
 
Регистрация: 01.03.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от vasek123 Посмотреть сообщение
Код:
void __fastcall TForm6::Timer1Timer(TObject *Sender)
{
if ( msec < 99 )
msec++;
else
{
msec = 0;
if ( sec < 59)
sec++;
else
{
sec = 0;
min++;
Label2->Caption = "0" + IntToStr(min);
}
if ( min < 59)
min++;
else
{
min = 0;
hours++;
Label1->Caption = "0" + IntToStr(hours);
}
if (sec <= 9)
Label3->Caption = "0" + IntToStr(sec);
else
Label3->Caption = IntToStr(sec);
}
if (msec <=9)
Label4->Caption = "0" + IntToStr(msec);
else
Label4->Caption = IntToStr(msec);
}
Попробуй так:

Код:
void __fastcall TForm6::Timer1Timer(TObject *Sender)
{
if ( msec < 99 )
++msec;
else
{
msec = 0;
if ( sec < 59)
++sec;
else
{
sec = 0;
++min;
Label2->Caption = "0" + IntToStr(min);
}
if ( min < 59)
++min;
else
{
min = 0;
++hours;
Label1->Caption = "0" + IntToStr(hours);
}
if (sec <= 9)
Label3->Caption = "0" + IntToStr(sec);
else
Label3->Caption = IntToStr(sec);
}
if (msec <=9)
Label4->Caption = "0" + IntToStr(msec);
else
Label4->Caption = IntToStr(msec);
}
А вообще, нет у меня доверия к Borland C++ ни какого...
Не помогает,всё также остается.Но если убрать вывод в Label1->Caption то минуты выводятся правильно но насчет часов не знаю как
Luchfan12 вне форума Ответить с цитированием
Старый 23.10.2014, 11:45   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Тебе чего из чего получить-то надо?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.10.2014, 12:06   #5
Luchfan12
Пользователь
 
Регистрация: 01.03.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Тебе чего из чего получить-то надо?
Уже ничего)Проблему решил,дело всё в Borland C++,который бывает не понимает код),но всё равно спасибо,если что-то не будет получаться обращусь к вам)
Luchfan12 вне форума Ответить с цитированием
Старый 23.10.2014, 12:14   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
дело всё в Borland C++,который бывает не понимает код
Ага, канешна! У тебя даже в тексте сообщения 3 закрывающих скобки и ни одной открывающей.
То ли лыжи не едут, то ли С++ не понимает... Ога...

Код ЧУДОВИЩНЫЙ!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.10.2014, 12:22   #7
Luchfan12
Пользователь
 
Регистрация: 01.03.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Ага, канешна! У тебя даже в тексте сообщения 3 закрывающих скобки и ни одной открывающей.
То ли лыжи не едут, то ли С++ не понимает... Ога...

Код ЧУДОВИЩНЫЙ!
Оказывается я дважды использовал min++ поэтому были косяки с программой
Luchfan12 вне форума Ответить с цитированием
Старый 23.10.2014, 12:54   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Оказывается я дважды использовал min++
Компилятор виноват, да?
Цитата:
были косяки с программой
После исправления код не перестал быть чудовищным. Я, например, не понимаю, что он делает.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часы и минуты перевести в минуты!!! evm-evgenij Microsoft Office Excel 8 20.04.2015 08:50
часы, минуты, секунды с++ dima1257 Помощь студентам 2 02.07.2013 12:19
Создаём секундомер [Как сделать часы, минуты, секунды.] Jastic Общие вопросы Delphi 21 03.11.2012 22:31
Конвертация времени ms в время минуты,секунды,часы. Человек_Борща Общие вопросы Delphi 4 03.07.2011 12:56
Таймер. Конвертирование ms в часы,минуты, секунды.. ищу решения.. Человек_Борща Общие вопросы Delphi 3 08.04.2010 09:51