Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c