Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 15
1

Постепенное заполнение ProgressBar-а после нажатия на кнопку

27.10.2017, 22:02. Показов 1711. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем у меня программа видеомагнитофон и я хочу чтобы по нажатию на кнопку ,используя таймер,у меня заполнялся постепенно ProgressBar никак не получается реализовать.
вот часть программы:
Pascal
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
unit vr;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, ExtCtrls, Dialogs;
 
TYPE TState=(Play,Pause,Stop);
TYPE
  TPO = procedure of object;
 
  TVideoRecorder = class
   private
    v_power: boolean;
    v_currentTimeVR: Ttime;
    v_stateCassette: TState;
    v_title: string;
    v_p: TPO;
    timer: Ttimer;
    procedure setCurrentTimeVR(newCurrentTimeVR: Ttime);
    procedure setStateCassette(newStateCassette: TState);
    procedure setTitle(newTitle: string);
    function getPower: boolean;
    function getCurrentTimeVR: Ttime;
    function getStateCassette: TState;
    function getTitle: string;
 
 
    public
     property power: boolean read getPower;
     property currentTimeVR: Ttime read getCurrentTimeVR write setCurrentTimeVR;
     property stateCassette: TState read getStateCassette write setStateCassette;
     property title: string read getTitle write setTitle;
 
    procedure swtchPower;
    procedure play;
    procedure pause;
    procedure stop;
    procedure rewindBack(rewindBack: Ttime);
    procedure rewindFoward(rewindFoward: Ttime);
    procedure removCassette;
    procedure setCassette(newTitle: string);
 
    procedure Timer1Timer(Sender: TObject);
 
    constructor Create(p: TPO);
    destructor Destroy;
  end;
  VAR a,b,c:TState;
      //a:Play;b:=Stop;c:=Pause;
    //progressBar1.position:=p;
 
implementation
constructor TVideoRecorder.Create(p: TPO);
begin
  inherited Create;
 
  v_power:= false;
  v_currentTimeVR:=now;
  v_stateCassette:=b;
  v_title:=('имя кассеты');
 
  //Создание таймера
  timer:=TTimer.Create(nil);
  timer.Enabled:=true;
  timer.Interval:=1000;
  timer.OnTimer:=@Timer1Timer;
 
  v_p:=p;
 
end;
 
destructor TVideoRecorder.Destroy;
begin
  timer.Enabled:=false;
  timer.Destroy;
 
  inherited Destroy;
  end;
procedure TVideoRecorder.Timer1Timer(Sender: Tobject);
begin
 //video.currentTimeVR:= ;
end;
procedure TVideoRecorder.setCurrentTimeVR(newCurrentTimeVR: Ttime);
begin
 v_currentTimeVR:=newCurrentTimeVR;
end;
procedure TVideoRecorder.setStateCassette(newStateCassette: TState);
begin
 v_stateCassette:=newStateCassette;
end;
procedure TVideoRecorder.setTitle(newTitle: string);
begin
 v_title:=newTitle;
end;
procedure TVideoRecorder.swtchPower;
begin
 v_power:=not(v_power);
 if Assigned(v_p) then
 v_p;
end;
procedure TVideoRecorder.play;
begin
 v_stateCassette:=a;
 timer.Enabled:=true;
 //progressBar1.Position = 100;
 if Assigned(v_p) then
 v_p
end;
procedure TVideoRecorder.pause;
begin
 v_stateCassette:=c;
end;
procedure TVideoRecorder.stop;
begin
 v_stateCassette:=b;
end;
procedure TVideoRecorder.rewindBack(rewindBack: Ttime);
begin
 
end;
procedure TVideoRecorder.rewindFoward(rewindFoward: Ttime);
begin
 
end;
procedure TVideoRecorder.setCassette(newTitle: string);
begin
 
end;
function TVideoRecorder.getPower: boolean;
begin
 result:=v_power;
end;
function TVideoRecorder.getCurrentTimeVR: Ttime;
begin
 result:=v_currentTimeVR;
end;
function TVideoRecorder.getStateCassette: TState;
begin
 result:=v_stateCassette;
end;
function TVideoRecorder.getTitle: string;
begin
 result:=v_title;
end;
procedure TVideoRecorder.removCassette;
begin
 
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2017, 22:02
Ответы с готовыми решениями:

FireMonkey TComboEdit заполнение выпадающего списка после нажатия на кнопку
Есть на форме ComboEdit1: TComboEdit. Надо заполнить выпадающий список в момент нажатия кнопки ...

После нажатия на кнопку TBitBtn сделать кнопку не действующей
Как после нажатия на кнопку bitbtn1 кнопка становилась не действушей

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

По событию нажатия на кнопку вызвать функцию, в которой ждать нового нажатия на ту же самую кнопку
type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); ...

4
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
28.10.2017, 09:24 2
Используйте таймер и свойство кнопок Tag. Объяснять долго, поэтому смотрите пример. 111.rar
Можете доработать: включать таймер по нажатию кнопки, а по отпусканию выключать.
0
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
28.10.2017, 09:29 3
Можете вообще сделать два таймера: один на увеличение счёта, другой на уменьшение. При удержании первой кнопки работает 1-й таймер, который увеличивает. При отпускании кнопки таймер останавливается. Аналогично и для второй кнопки. В этом случае свойство Tag не потребуется.
0
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 15
28.10.2017, 21:41  [ТС] 4
Спасибо большое.А есть способ чтобы можно было нажать(без удержки) и она сама заполнялась бы?
0
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
29.10.2017, 11:22 5
Цитата Сообщение от Дима12230170 Посмотреть сообщение
А есть способ чтобы можно было нажать(без удержки) и она сама заполнялась бы?
Можно, примерно так: 222.rar.
0
29.10.2017, 11:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2017, 11:22
Помогаю со студенческими работами здесь

Убрать кнопку после нажатия
Как сделать так, чтобы нажав на кнопку она убиралась?

Крашится программа после нажатия на кнопку
Когда нажимаю на клавишу button2 крашится программа в чем проблема? public class Main3Activity...

После нажатия на кнопку она исчезает
Здравствуйте! Я никак не могу сделать так, чтобы при нажатии на кнопку она уменьшалась в...

Отображение текста после нажатия на кнопку.
Какой код должен быть, чтобы при вводе текста в текстбокс в форме в экселе, этот текст отображался...


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

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