Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Таймер в Delphi


G.I. ©   (2010-04-17 13:09:00) 

Как сделать таймер, который будет вести обратный отсчет (например от 60) и доходя до 0 начинает заново с 60 (бесконечное колличество раз, пока не закроют форму). Отсчет должен отображаться в Label.


Anatoly Podgoretsky   (2010-04-17 20:56:00) [1]

> DVM  (17.04.2010 18:14:17)  [17]

число 60 наводит на мысль о числе 60


Leonid Troyanovsky   (2010-04-17 19:48:00) [2]


> DVM ©   (17.04.10 18:14) [17]

> в сдаче какой то лабы вероятно. В следующий раз он спросит
> абсолютно аналогичную вещь.

Не спросит.
Он сейчас в армии
будет.

--
Regards, LVT.


DVM   (2010-04-17 18:14:00) [3]


> Anatoly Podgoretsky ©   (17.04.10 18:05) [16]

Я не о том, понятно, что он тикать будет пока не отключат, но рассчитывать на тик в секунду и 60 тиков через минуту не следует. Тут же число 60 наводит на мысли о минуте.


> Юрий Зотов ©   (17.04.10 17:57) [15]

Но в первом классе нам не показывали как читать слова ДО ТОГО как не были разобраны нужные буквы и звуки.

Тут такая же ситуация. Если человек читал про переменные то о приращении оных вопросов не должно возникать. Если человек читал про ветвления то о том как сравнить два значения и в нужный момент изменить ход программы - тоже.

А больше и не требуется.

А так он пойдет и удовлетворит свою сиюминтную потребность в сдаче какой то лабы вероятно. В следующий раз он спросит абсолютно аналогичную вещь.


Anatoly Podgoretsky   (2010-04-17 18:05:00) [4]

> DVM  (17.04.2010 17:48:14)  [14]

Не может, он будет тикать пока его не отключат.


Юрий Зотов   (2010-04-17 17:57:00) [5]


> DVM ©   (17.04.10 14:44) [6]

Наоборот.

Когда нас в первом классе учили азбуке, нам показывали, как произносятся буквы? Голосом?

Или просто показывали написаннную букву и говорили "произнеси"?


DVM   (2010-04-17 17:48:00) [6]

При определенных условиях, стандартный таймер может вместо 60 раз тикнуть 40, а то и 30 раз. Полагаться на его интервалы и количество тиков нельзя.


И. Павел   (2010-04-17 17:11:00) [7]


> Если таймер проработает

То есть не таймер, а обработчик


И. Павел   (2010-04-17 17:10:00) [8]


> А тогда что?

Тогда лучше все сделать через Time или Now. причины:
1. При добавлении часов и минут (если, конечно, автор не хочет сделать таймер просто по секундам) не придется заморачиваться.
2. Если таймер проработает больше секунды, пойдет отставание.


Leonid Troyanovsky   (2010-04-17 16:46:00) [9]


> И. Павел ©   (17.04.10 16:44) [10]

> А это, случайно, не секундомером будет?

А тогда что?

--
Regards, LVT.


И. Павел   (2010-04-17 16:44:00) [10]


> G.I.


А это, случайно, не секундомером будет?


Leonid Troyanovsky   (2010-04-17 16:28:00) [11]


> G.I.   (17.04.10 13:09)

> Как сделать таймер, который будет вести обратный отсчет
> (например от 60) и доходя до 0 начинает заново с 60 (бесконечное
> колличество раз, пока не закроют форму). Отсчет должен отображаться
> в Label.


procedure TForm1.Timer1Timer(Sender: TObject);
begin
 with Label do
   begin
     Caption := IntToStr(60-(60-StrToInt(Caption)+1) mod 61);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Label.Caption := '60';
 Timer1.Enabled := True;
end;

--
Regards, LVT.


Anatoly Podgoretsky   (2010-04-17 16:06:00) [12]

Переход через Нуль имеет два значения.


Palladin   (2010-04-17 15:45:00) [13]

конечно не педагогично, до нуля никогда не дойдет )


DVM   (2010-04-17 14:44:00) [14]


> Юрий Зотов ©   (17.04.10 14:42) [5]

непедагогично это


Юрий Зотов   (2010-04-17 14:42:00) [15]

> G.I.   (17.04.10 13:09)  

implementation

var
 Count: integer = 60;

procedure TForm1.Timer1Timer(Sender: TObject); // Timer1.OnTimer
begin
 Dec(Count);
 if Count = 0 then Count := 60;
 Label1.Caption := IntToStr(Count);
end;


Anatoly Podgoretsky   (2010-04-17 14:14:00) [16]

Таймеру это не надо, это он делает сам без G.I.


Loginov Dmitry   (2010-04-17 14:12:00) [17]


> Старндатный таймер именно так и работает.


не, к нему еще нужно влепить операцию " отнять"


Anatoly Podgoretsky   (2010-04-17 13:59:00) [18]

> G.I.  (17.04.2010 13:09:00)  [0]

Старндатный таймер именно так и работает.


DVM   (2010-04-17 13:36:00) [19]

что конкретно непонятно? и что пробовал сделать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо