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

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

Может кто подскажет как произвести обратный отсчет времени [D7, WinXP]


Сергей И ©   (2006-04-20 10:58:00) 

Мне необходимо решить следующую зададу:
вводится время обратного отсчета и при его истечении выполняется задуманное действие


Alarm   (2006-04-21 14:51:00) [1]

>Anatoly Podgoretsky ©   (21.04.06 14:45) [9]
Спасибо что ответили сами. Мне было как-то не корректно (удобно) приводить Ваше решение


Anatoly Podgoretsky   (2006-04-21 14:45:00) [2]

EndTime - Now
И далее любое форматирование.
EndTime время окончания отчета, равное время Now + интервал.


unknown   (2006-04-21 14:32:00) [3]

Вот так :
var
 TimeCounter:TDateTime;
....
 TimeCounter:=now;
...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
...
Caption:=FormatDateTime('hh:mm:ss:ms',Now-TimeCounter);
...
end;


inri13666   (2006-04-21 14:24:00) [4]

в смысле ты что именно имешь в виду напиши плиз по конкретней :)


Alarm   (2006-04-21 14:22:00) [5]

Не хотел "высовываться", но у APP очень давно (ну года примерно 3 или более назад) был отличный ответ на этот вопрос. У меня в проектах было другое решение, но его предложением, типа минус Now я был восхищен!!!


Anatoly Podgoretsky   (2006-04-21 14:15:00) [6]

Таймер конечно, но только не sec:=sec-1;, а NOW


inri13666   (2006-04-21 14:05:00) [7]

вот листинг проги может поймёш
там вообщем количество оставшихся секунд отображается в заголовке окна
а по истечению времени выводиться окно:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   Timer1: TTimer;
   Edit1: TEdit;
   Label1: TLabel;
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 sec:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
sec:=strtoint(edit1.text);
timer1.Enabled:=true ;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if timer1.Enabled=true
   then timer1.Enabled:=false;
timer1.interval:=1000 //что равно одной секунде
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled:=false;
if sec=0
 then
 begin
 showmessage('Интервал истёк')
 end
 Else
 begin
 sec:=sec-1;
 timer1.Enabled:=True;
 caption:=inttostr(sec);
 end;

end;

end.

GOOD Luck :)


Chlavik   (2006-04-21 13:31:00) [8]

по таймеру декриментируеш переменную time--;  ой dec(time, Timer1.interval );


Megabyte   (2006-04-20 13:11:00) [9]

Юзай таймер. А если надо отображать обратный отчет - это ж не сложно.


MBo   (2006-04-20 11:01:00) [10]

TTimer пробовал использовать?


Наверх

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