Главная страница
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.05 c
4-1084527941
Sanek_metaller
2004-05-14 13:45
2004.07.04
Как програмно отследить изменения в реестре?


9-1078659133
MrAngel
2004-03-07 14:32
2004.07.04
HLSL и GLSL


1-1087839537
san
2004-06-21 21:38
2004.07.04
TreeView


4-1085633111
Le!
2004-05-27 08:45
2004.07.04
Ctrl + alt + del поl XP


3-1086678753
Belkova
2004-06-08 11:12
2004.07.04
сортировка