Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 15:30   #1
crit
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 121
По умолчанию ОТСЧЕТ ВРЕМЕНИ

Здравствуйте! Мне нужно сделать отсчет времени. Тоесть должно задаваться время на форме(например DateTimePicker1,или updown, ну или вообще c Edit ), по нажатию кнопки сохраняться в файл ,а потом при запуске формы это время должно считываться с файла с отсчетом в формате 00:00 ..Как то сделать можно???
crit вне форума Ответить с цитированием
Старый 04.06.2009, 16:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
с отсчетом в формате 00:00 ..Как то сделать можно???
т.е. ты не знаешь как вывести на экран в таком виде?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2009, 16:19   #3
crit
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 121
По умолчанию

Например в DateTimePicker1 я набрал 00:20:00, тоесть 20 минут. как это засунуть в файл, а потом с запуском формы считать с него в таком же формате ,но уже с отсчетом в обратоном порядке..?
crit вне форума Ответить с цитированием
Старый 05.06.2009, 07:59   #4
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Ну запомнить и считать это не проблема, пользуйтесь ини файлами. А вот насчет отсчета в таком формате будет посложнее, как это сделать я наверное не посоветую.
Вот ЗДЕСЬ обсуждалось как сделать сохранение, и применить это сохранение при запуске
Мой скромненький сайт

Последний раз редактировалось Vladya; 05.06.2009 в 08:03.
Vladya вне форума Ответить с цитированием
Старый 05.06.2009, 09:46   #5
crit
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 121
По умолчанию

да вот не понятно как время DateTimePicker1 засунуть в файл
crit вне форума Ответить с цитированием
Старый 05.06.2009, 10:19   #6
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Так запихиваем время в файл. Здесь вместо ф-ии GetTime напиши свой DateTimePicker1.Time
Код:
var
  f: textfile;
begin
  Assignfile(f, 'time.txt');
  Rewrite(f);
  writeln(f, TimeToStr(GetTime));
  CloseFile(f);
end;
А так ведем обратный отсчет
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Time := GetTime;
  Edit1.Text := TimeToStr(Time);
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Time := StrToTime(Edit1.Text);
  Time := Time - 0.00001;
  Edit1.Text := TimeToStr(Time);
end;
Баламут вне форума Ответить с цитированием
Старый 05.06.2009, 11:01   #7
crit
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 121
По умолчанию

ругается на Time := DateTimePicker1.Time;,говорит Left side cannot be assigned to


Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
   Time := DateTimePicker1.Time;
  Edit1.Text := TimeToStr(Time);
  Timer1.Enabled := true;


end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Time := StrToTime(Edit1.Text);
  Time := Time - 0.00001;
  Edit1.Text := TimeToStr(Time);

end;

procedure TForm1.Button1Click(Sender: TObject);
var
 f: textfile;
begin
  Assignfile(f, 'time.txt');
  Rewrite(f);
  writeln(f, TimeToStr(DateTimePicker1.Time));
  CloseFile(f);

end;
crit вне форума Ответить с цитированием
Старый 05.06.2009, 11:05   #8
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Переменную Time: TTime объяви где-нибудь.
Баламут вне форума Ответить с цитированием
Старый 05.06.2009, 11:19   #9
crit
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 121
По умолчанию

такс, в Edit 0:00:00 почему то, отсчета нету
crit вне форума Ответить с цитированием
Старый 08.06.2009, 02:53   #10
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну в данном случае он и не должен идти, ибо в какой-то момент времени мы получаем число, преобразовать которое к времени не представляется возможным. Я просто показал тебе как в принципе это реализуется. Писать же за тебя весь код мне как-то лениво. Поэкспериментируй с функциями DecodeTime, EncodeTime. Вероятно так будет нагляднее. Задача-то собственно тривиальная. Вот небольшой кусок кода, демонстрирующий работу с этими функциями (одна из которых процедура )
Код:
var
  Hour, Min, Sec, mSec: WORD;
begin
  DecodeTime(Time, Hour, Min, Sec, mSec);
  if Sec = 0 then
  begin
    sec := 59;
  end
  else Dec(Sec);

  Time := EncodeTime(Hour, Min, Sec, mSec);
  Edit1.Text := TimeToStr(Time);
Баламут вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать отсчет времени? Aboltus Общие вопросы Delphi 11 24.05.2011 20:45
Отсчет времени в pascal с помощю встроенного assemblera? Geddar Помощь студентам 2 06.03.2009 12:30
Обратный отсчет в прогрессбар Stanislav Общие вопросы Delphi 3 09.01.2008 16:49
Отсчет времени в С Raptor Помощь студентам 13 29.12.2007 16:32
Как сделать отсчет дней от заданной даты в Excel? ru16 Microsoft Office Excel 1 22.11.2007 11:13