Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Секудномер

1.3K
30 октября 2005 года
Zephyr
104 / / 03.05.2005
Как мне создать секундомер, который будет отображаться на Label???
9.8K
30 октября 2005 года
bqserg
56 / / 27.09.2005
Цитата:
Originally posted by Zephyr
Как мне создать секундомер, который будет отображаться на Label???



TTimer не пробывал использовать?:)

1.3K
30 октября 2005 года
Zephyr
104 / / 03.05.2005
Цитата:
Originally posted by bqserg
TTimer не пробывал использовать?:)


Пробовал. Не получилось. Трудно объяснить чтоли??

9.8K
30 октября 2005 года
bqserg
56 / / 27.09.2005
Цитата:
Originally posted by Zephyr
Пробовал. Не получилось. Трудно объяснить чтоли??



TTimer автоматом отсчитывает по 1000 млс = 1с (свойство Interval). У него есть событие OnTimer, которое вызывается по прошествии заданного (Interval) времени. Туда и пристрой свою процедуру обновления Label'а.

PS:
Enabled - включает и выключает таймер.

3.2K
31 октября 2005 года
foldem
52 / / 24.10.2005
Цитата:
Originally posted by bqserg
TTimer автоматом отсчитывает по 1000 млс = 1с (свойство Interval). У него есть событие OnTimer, которое вызывается по прошествии заданного (Interval) времени. Туда и пристрой свою процедуру обновления Label'а.

PS:
Enabled - включает и выключает таймер.


Если же заговорили о таймере,то пожалуйста напишите прогу где через каждие 5 сек.назва Label меняется(с использованием таймера).Знаю что ето просто но у меня не получается!

317
31 октября 2005 года
Relax
573 / / 20.09.2000
че-то вообще мрак... чему там не получаться-то?

на форму ставишь два компонента: TLabel и TTimer, таймеру ставишь интервал равный 5000 мс (5 сек.) и проверяешь что стоит Enabled = true. Затем в событии OnTimer пишешь следующий код:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int Flag = 0;

if(!Flag)
{
Label1->Caption = "Пять секунд, пять секунд...";
Flag = 1;
}
else
{
Label1->Caption = "Это много или мало?";
Flag = 0;
}
}

в результате через каждые 5 секунд текст лабела будет меняться...

Если поставить интервал равным 1000 мс и в событии написать следующий код:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int Count = 0;
Label1->Caption = Count++;
}

это и будет секундомер, будет каждую секунду менять значение счетчика. только надо следить чтобы за границы int не вылезло...
1.3K
31 октября 2005 года
Zephyr
104 / / 03.05.2005
Мне нужно сделать обычные часы, которые идут с 00:00:00.
13K
31 октября 2005 года
fcxSanya
11 / / 31.10.2005
Цитата:
Originally posted by Zephyr
Мне нужно сделать обычные часы, которые идут с 00:00:00.


Ну тогда напиши процедуру Timer1Timer так:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int seconds = 0;
seconds++;
String h = String(seconds/3600<10?"0":"")+IntToStr(seconds/3600);
String m = String(seconds%3600/60<10?"0":"")+IntToStr(seconds%3600/60);
String s = String(seconds%60<10?"0":"")+IntToStr(seconds%60);
Label1->Caption = h+":"+m+":"+s;
}

2.0K
01 ноября 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by fcxSanya
Ну тогда напиши процедуру Timer1Timer так:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int seconds = 0;
seconds++;
String h = String(seconds/3600<10?"0":"")+IntToStr(seconds/3600);
String m = String(seconds%3600/60<10?"0":"")+IntToStr(seconds%3600/60);
String s = String(seconds%60<10?"0":"")+IntToStr(seconds%60);
Label1->Caption = h+":"+m+":"+s;
}


Нет на таймере часы не делают.
Сделай на Idle вызов системных часов и вычитай время запуска. Все. Ну если не знаешь как, то
блин учись методом научного тыка.:D

317
01 ноября 2005 года
Relax
573 / / 20.09.2000
золотые слова!
метод научного тыка - самый наукчный метод! :)
1.9K
01 ноября 2005 года
Anton Chik
175 / / 26.09.2005
TDateTime Tbegin,

void __fastcall TForm1::FormCreate(TObject *Sender)
{
TBegin=Time();
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label1->Caption=TimeToStr(Time()-Tbegin);
}


Мне кажется тип того...
13K
01 ноября 2005 года
fcxSanya
11 / / 31.10.2005
Цитата:
Originally posted by WidowMaker
Сделай на Idle вызов системных часов и вычитай время запуска


Типа этого?

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){
Application->OnIdle = &IdleHandler;
StartTime = Time();
}
void __fastcall TForm1::IdleHandler(TObject *Sender,bool &Done) {
Done = false;
Label1->Caption = TimeToStr(Time()-StartTime);
}

13K
02 ноября 2005 года
Elios
5 / / 11.10.2005
Попробуй так:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int Flag = 0;

if(!Flag)
{
Label1->Caption = TimeToStr(Time());
Flag = 1;
}
else
{
Label1->Caption = TimeToStr(Time());
Flag = 0;
}

}
2.0K
02 ноября 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by fcxSanya
Типа этого?

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){
Application->OnIdle = &IdleHandler;
StartTime = Time();
}
void __fastcall TForm1::IdleHandler(TObject *Sender,bool &Done) {
Done = false;
Label1->Caption = TimeToStr(Time()-StartTime);
}


Как вариант самое то:}

1.3K
02 ноября 2005 года
Zephyr
104 / / 03.05.2005
Всем спасибо!! Всё работает!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог