Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
5 / 7 / 5
Регистрация: 13.11.2015
Сообщений: 267
1

Срабатывание таймера после остановки первого еще несколько раз

01.02.2017, 17:20. Показов 2024. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть 2 таймера. Они запускаются кнопкой одновременно при нажатии кнопки. После остановки первого таймера второй должен проработать еще 3 раза.
Delphi
1
2
3
4
begin
  PIH.Enabled := True;
  BufferClock.Enabled:=True;
end;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2017, 17:20
Ответы с готовыми решениями:

Почему после ввода редактор не спрашивает ввод еще несколько раз?
почему после ввода редактор не спрашивает ввод еще несколько раз ? var a:string; b:integer;...

Срабатывание счетчика загрузок несколько раз
Доброго дня, есть проблема с счетчиком загрузок файлов. А именно если качать файл с браузера, то...

MessageBox выскакивает без остановки, как сделать одно срабатывание?
Делаю игру, нужно что бы при определённом значение переменной появлялось сообщение, получилось, но...

Компьютер несколько раз отключался после чего в очередной раз потух и больше не включался.
У меня возникла такая проблема. Компьютер несколько раз отключался после чего в очередной раз потух...

7
qwertehok
01.02.2017, 17:24
  #2

Не по теме:

Цитата Сообщение от Krutko Посмотреть сообщение
После остановки первого таймера второй должен проработать еще 3 раза.
я аж расплакался - таймер то как жалко

концовка будет?

0
5 / 7 / 5
Регистрация: 13.11.2015
Сообщений: 267
01.02.2017, 21:07  [ТС] 3
Бамп
0
5780 / 4523 / 1430
Регистрация: 14.04.2014
Сообщений: 20,147
Записей в блоге: 20
01.02.2017, 21:30 4
при срабатывании первого таймера задайте значение 3 некоей переменной
второй таймер при срабатывании уменьшает ее на 1, а когда получит 0, тоже отключается
1
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
01.02.2017, 21:59 5
Krutko,
Цитата Сообщение от krapotkin Посмотреть сообщение
при срабатывании первого таймера задайте значение 3 некоей переменной
второй таймер при срабатывании уменьшает ее на 1, а когда получит 0, тоже отключается
и этот "алгоритм" надо обьяснять?
это же 1 уровень.
0
5780 / 4523 / 1430
Регистрация: 14.04.2014
Сообщений: 20,147
Записей в блоге: 20
01.02.2017, 22:02 6
это -1-й
0
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
01.02.2017, 22:03 7
Лучший ответ Сообщение было отмечено Krutko как решение

Решение

Код с комментариями:
Delphi
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
unit MainU;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button3: TButton;
    PIH: TTimer;
    BufferClock: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure PIHTimer(Sender: TObject);
    procedure BufferClockTimer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
qfirst,//Число срабатывания первого таймера.
qsecond,//Число срабатывания второго таймера.
qcount//Счётчик срабатывания второго таймера до 3 раз по сле остановки первого.
:integer;
 
implementation
 
{$R *.dfm}
 
//Создание формы. Начало программы.
procedure TForm1.FormCreate(Sender: TObject);
begin
//Отключаем первый и второй таймеры.
pih.Enabled:=false;
bufferclock.Enabled:=false;
end;
 
//Нажатие кнопки "Пуск".
procedure TForm1.Button1Click(Sender: TObject);
begin
//Задания нуля у счётчиков.
qfirst:=0;
qsecond:=0;
qcount:=0;
//Включение первого и второго таймеров.
pih.Enabled:=true;
bufferclock.Enabled:=true;
end;
 
//Нажатие кнопки "Стоп".
procedure TForm1.Button2Click(Sender: TObject);
begin
//Отключение первого таймера.
pih.Enabled:=false;
end;
 
//Срабатывание первого таймера.
procedure TForm1.PIHTimer(Sender: TObject);
begin
//Увеличение количества срабатывания первого таймера на 1.
qfirst:=qfirst+1;
//Вывод количества срабатывания первого таймера.
label2.Caption:=inttostr(qfirst);
end;
 
//Срабатывание второго таймера.
procedure TForm1.BufferClockTimer(Sender: TObject);
begin
//Увеличение количества срабатывания второго таймера на 1.
qsecond:=qsecond+1;
//Вывод количества срабатывания второго таймера.
label4.Caption:=inttostr(qsecond);
//Если первый таймер отключён, то увеличиваем счётчик на 1.
if not pih.Enabled then
qcount:=qcount+1;
//Если счётчик равен 3, то есть второй таймер сработал на 3 раза больше первого,
//то отключаем второй таймер.
if qcount=3 then
bufferclock.Enabled:=false;
end;
 
//Нажатие кнопки "Закрыть"
procedure TForm1.Button3Click(Sender: TObject);
begin
//Выход из программы.
close;
end;
 
end.
Прилагаю проект на Delphi.
Вложения
Тип файла: zip Timers.zip (198.2 Кб, 3 просмотров)
1
5 / 7 / 5
Регистрация: 13.11.2015
Сообщений: 267
01.02.2017, 22:12  [ТС] 8
unifikator,спасибо, рад Вас снова видеть!
0
01.02.2017, 22:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2017, 22:12
Помогаю со студенческими работами здесь

Событие остановки таймера
Не могу сообразить, как определить, что таймер остановлен? Например, я нажимаю на кнопку, таймер...

Калькулятор VB. При счете 2+3 = 5 и нажатии на = еще несколько раз, чтобы прибавлялось 2ое число
Калькулятор VB. При счете 2+3 = 5 и нажатии на = еще несколько раз, чтобы прибавлялось 2ое число...

После первого выполнения кода вызваного срабатыванием таймера программа закрывается
Писал программу для личного использования вроде всё работает кроме одного НО. После первого...

Срабатывание светодиода по прерыванию от таймера
Возникла проблема со следующей задачей: После нажатие кнопки (РС13)-> появляется прерывание -> в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru