Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: 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 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
14-1086979817
X9
2004-06-11 22:50
2004.07.04
Дрова на Lucent под Linux


4-1085254938
kat
2004-05-22 23:42
2004.07.04
Как осуществить чтение данных из своей программы


3-1086727961
Almaz
2004-06-09 00:52
2004.07.04
Создание таблиц с помощью ADO


3-1086862478
quQuev
2004-06-10 14:14
2004.07.04
OLAP, Oracle, трехзвенка. Как лучше реализовать.


6-1083750681
IceBeerg
2004-05-05 13:51
2004.07.04
Определение имени рабочей группы и ip удаленного компа