Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];

Вниз

Может кто подскажет как произвести обратный отсчет времени   Найти похожие ветки 

 
Сергей И   (2006-04-20 10:58) [0]

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


 
MBo ©   (2006-04-20 11:01) [1]

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


 
Megabyte ©   (2006-04-20 13:11) [2]

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


 
Chlavik ©   (2006-04-21 13:31) [3]

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


 
inri13666 ©   (2006-04-21 14:05) [4]

вот листинг проги может поймёш
там вообщем количество оставшихся секунд отображается в заголовке окна
а по истечению времени выводиться окно:
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 :)


 
Anatoly Podgoretsky ©   (2006-04-21 14:15) [5]

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


 
Alarm ©   (2006-04-21 14:22) [6]

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


 
inri13666 ©   (2006-04-21 14:24) [7]

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


 
unknown ©   (2006-04-21 14:32) [8]

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


 
Anatoly Podgoretsky ©   (2006-04-21 14:45) [9]

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


 
Alarm ©   (2006-04-21 14:51) [10]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
2-1145334132
Holod
2006-04-18 08:22
2006.05.07
Помогите, плиииз!


9-1129189206
Ricks
2005-10-13 11:40
2006.05.07
Миникарта


4-1139825664
Цукор5
2006-02-13 13:14
2006.05.07
SendMessage при разных вызовах форм


2-1145204475
Bogdan1024
2006-04-16 20:21
2006.05.07
Complex numbers в Дэлфи


2-1144997274
Igorntk
2006-04-14 10:47
2006.05.07
Переход к незаполненному TEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский