Вниз
Скачать: CL | DM;

Timer   Найти похожие ветки 

← →
Sah   (2004-06-15 18:34) [0]

Уважаемые, Мастера!
Подскажите, как сделать отчсчет времени (через Timer)  в обратном порядке, причем минута или час задавался бы из SpinEditoв.
Зараннее спасибо!


← →
TUser ©   (2004-06-15 18:37) [1]

Читаешь из спина значение, потом его уменьшаешь по таймеру, пока не получишь >=0.


← →
clickmaker ©   (2004-06-15 18:39) [2]


> в обратном порядке

Бомбу делаешь?


← →
Kair ©   (2004-06-15 18:42) [3]


> clickmaker ©   (15.06.04 18:39) [2]
>
> > в обратном порядке
>
> Бомбу делаешь?


:D


← →
Sah   (2004-06-15 19:33) [4]

А можно пример!
var
tim:tdatetime;
procedure TForm1.FormShow(Sender: TObject);
begin
tim:=time;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
a:string;
begin
a:=formatdatetime("nn:ss",(time-tim));
label1.Caption:=(a);
end;

end.
Это - отсчет вверх с 0:00,
А как сделать уменьшение со SpinEdit/
Как это написать?


← →
Vit@ly ©   (2004-06-15 19:36) [5]

Задача много раз решалась (в том числе и мной). Свои функции выполняла, но на мой взляд (после того, как я увидел предложенное решение, мое решение показалось мне каким-то некрасивым). А очень красивое решение (и короткое - 2 строки) выложил арр, уже не помню как давно. Вот его примерная суть:
SetPeriod:= //и совсем не принципиально SpinEdit это или что-то иное
LastTime:= Time + SetPeriod
Edit1.Text:= TimeToStr:= LastTime - Time
Это висит на Timer

Или примерно так. На мой взляд все прозрачно.


← →
Vit@ly ©   (2004-06-15 19:38) [6]

Сорри за
Edit1.Text:= TimeToStr:= LastTime - Time
следует читать
Edit1.Text:= TimeToStr(LastTime - Time)ж


← →
имя   (2004-06-16 20:19) [7]

Удалено модератором


← →
Vit@ly ©   (2004-06-16 21:07) [8]

Привожу полный текст:
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ExtCtrls, Spin, ComCtrls;
type
 TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;
   Timer1: TTimer;
   HourSpin: TSpinEdit;
   SpinMin: TSpinEdit;
   SecSpin: TSpinEdit;
   procedure Button1Click(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure HourSpinChange(Sender: TObject);
   procedure SpinMinChange(Sender: TObject);
   procedure SecSpinChange(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
 LastTime: TDateTime;
 hour, min, sec: word;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
LastTime:= Now + EncodeTime(Hour, Min, Sec, 0);
Edit1.Visible:= True;
Edit1.Text:= TimeToStr(LastTime - Now);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text:= TimeToStr(LastTime - Now);
end;

procedure TForm1.HourSpinChange(Sender: TObject);
begin
Hour:= HourSpin.Value;
end;

procedure TForm1.SpinMinChange(Sender: TObject);
begin
min:= SpinMin.Value;
end;

procedure TForm1.SecSpinChange(Sender: TObject);
begin
Sec:= SecSpin.Value;
end;
end.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.023 c
1-1087480688
olhovik
2004-06-17 17:58
2004.07.04
Вывод из Table в Memo


9-1078916732
ZAROLF
2004-03-10 14:05
2004.07.04
Ядерный взрыв в 2D аркаде


14-1087056449
Xtz
2004-06-12 20:07
2004.07.04
Настроить маршрутизацию в 2003 сервере


1-1087875404
Andrey V.
2004-06-22 07:36
2004.07.04
RadioButtons as RadioGroup


9-1078924752
Zak3D[@Tm]
2004-03-10 16:19
2004.07.04
Предвижение без задержек и премещение поп диагонали.




   Наверх