Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1087452642
Danilka
2004-06-17 10:10
2004.07.04
СПИД


3-1086376411
zokzok
2004-06-04 23:13
2004.07.04
как сделать, чтобы в DBGRID выделялись все поля выбранной записи?


14-1087046365
juiceman
2004-06-12 17:19
2004.07.04
Вопросы про локальную сеть


14-1087046197
Pat
2004-06-12 17:16
2004.07.04
Магистратура


1-1087481169
p_sA[11]
2004-06-17 18:06
2004.07.04
Реестр: Как прочитать все имена ключей в нужном мне разделе?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский