Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,036
1

Таймер, задать начальное значение и интервал

05.07.2015, 15:21. Просмотров 1221. Ответов 10
Метки нет (Все метки)

Здрасьте! Помогите создать таймер, чтобы шел отсчет от 30 сек по секунде (ну... вы поняли)
пробывал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{// в таймере
    int i=30;
    Label1->Caption=i;
while(i!=0)
   {
       i--;
       Label1->Caption=i;
   }
}
// в инспекторе
Interval =1000
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2015, 15:21
Ответы с готовыми решениями:

Задать начальное значение у input
Подскажите почему не получается задать начальное значение? <input type="number"...

Как задать начальное значение value в TrackBar?
Привет. Застрял с задачкой в vs2015. Подскажите. В программе я использую файл для настроек. Он...

Как задать начальное значение элемента массива
//запись в файл StreamWriter writefile = new StreamWriter(datafile,...

Задать для таймера интервал, введя значение в TextBox
Здравствуйте, у нас есть форма в ней TextBox и кнопка. В TextBox мы вводим интервал (допустим 1мин)...

10
случайный прохожий
1494 / 977 / 372
Регистрация: 20.07.2013
Сообщений: 2,858
05.07.2015, 15:50 2
Сначала сделай интервал таймера равным 30 сек (30000), потом в обработчике наступления события таймера меняй интервал на 1 сек (1000).
0
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,036
05.07.2015, 16:09  [ТС] 3
а можно в коде?
0
случайный прохожий
1494 / 977 / 372
Регистрация: 20.07.2013
Сообщений: 2,858
05.07.2015, 20:55 4
Например, так:
C++
1
2
3
4
5
6
7
8
9
10
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  Timer1->Interval = 30000;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  Timer1->Interval = 1000;
}
0
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,036
06.07.2015, 09:03  [ТС] 5
Так не работает - он сразу за секунду до нуля скидывает!
0
4946 / 2410 / 530
Регистрация: 05.06.2008
Сообщений: 7,512
Записей в блоге: 3
06.07.2015, 09:54 6
Shoshona, может так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int i;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 
 i = 30;
 Timer1->Interval = 1000;
 Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
 
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   i--;
  Label1->Caption = IntToStr(i);
  if(i==0)
  {
   Timer1->Enabled = false;
   ShowMessage("Таймер остановлен");
  }
}
//----------------------------------------------------
0
Почетный модератор
Эксперт С++
5840 / 2848 / 390
Регистрация: 01.11.2011
Сообщений: 6,884
06.07.2015, 09:56 7
Лучший ответ Сообщение было отмечено Shoshona как решение

Решение

Shoshona,
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    static int i=30;
    Label1->Caption=i;
//while(i!=0)
   {
       i--;
       Label1->Caption=i;
   }
 
}
1
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,036
06.07.2015, 13:50  [ТС] 8
Sasha, Выходит вообще ужас какой то. Он выводит 5-значные цыфры.

Добавлено через 2 минуты
SatanaXIII, Спасибо большое, все работает!
0
4946 / 2410 / 530
Регистрация: 05.06.2008
Сообщений: 7,512
Записей в блоге: 3
06.07.2015, 14:02 9
Цитата Сообщение от Shoshona Посмотреть сообщение
Sasha, Выходит вообще ужас какой то. Он выводит 5-значные цыфры.
У меня всё отлично, если бы было плохо не я бы не выкладывал код
0
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,036
06.07.2015, 16:06  [ТС] 10
Ребят, тут новая проблема появилась(
Мне необходимо, чтобы если на кнопку нажимаешь, счетчик заново работал. Как это сделать?
0
Вложения
Тип файла: rar Sities.rar (9.9 Кб, 2 просмотров)
Почетный модератор
Эксперт С++
5840 / 2848 / 390
Регистрация: 01.11.2011
Сообщений: 6,884
06.07.2015, 16:40 11
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Shoshona, описывайте пожалуйста задание полностью. Посидите, подумайте что к чему, все дела.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
Timer1->Enabled = false;
Timer1->Interval = 1000;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Tag--;
 
Label1->Caption = Timer1->Tag;
 
if( Timer1->Tag == 0 )
  Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Tag = 30;
Timer1->Enabled = true;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2015, 16:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Задать начальное состояние игры
Нужно задать исходное состояние игры шашки, то есть определенное расположение шашек, из текстового...

ValueListEditor - задать значениям начальное состояние
Здравствуйте, У меня в программе в этот компонент ValueListEditor, выводятся два значения в первый...

Как задать начальное условие для переменной-массива в NMinimize?
Уважаемые участники форума! Решаю многомерную задачу оптимизации и хочу передать в NMinimize в...

Присвоить переменной х значение 0, если ее начальное значение принадлежало интервалу (0;2).
Присвоить переменной х значение 0, если ее начальное значение принадлежало интервалу (0;2).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.