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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 18:28   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
Радость Работа с таймером! И обратным отчетам и с Мемо1

Всем хай) Доброго времени суток господа))
В общем у меня много вопросов накопилось по работе с таймером...

1) Например я спарсил время, а время записано в Мемо1 таким образом:

11:00
12:00
17:00

Вот есть label где отображается мое время, и есть время которое записано в Мемо1

Теперь как мне сделать так чтобы когда мое время и время которое записано в мемо1 выполнилась функция? Или например когда моя программа свернутая чтоб она сама разворачивалась)

2) например создал программу при первом открытии у меня начал идти отчет таймера с 24:00:00 (ч,м,с)
Я по сидел в программе и закрыл ее и у меня прошло время например 1 час, получается надо час отнять и сохранить куда нить да по надежней чтоб после перезпгрузки компа и открытии заново этой же программы у меня уже шел отчет с 23:00:00 и так далее....

3)
Например тот же самый способ как и в первом примере, то время которое я спарсил и время мое которое отображается с label если они сходятся то выполняется действие, но мне надо наоборот чтоб за 5 минут например выполнилась одно действие...
Дайте пару примеров, или где по читать подобное ?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 19.11.2013, 18:33   #2
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

Цитата:
1) Например я спарсил время, а время записано в Мемо1 таким образом:

11:00
12:00
17:00

Вот есть label где отображается мое время, и есть время которое записано в Мемо1

Теперь как мне сделать так чтобы когда мое время и время которое записано в мемо1 выполнилась функция? Или например когда моя программа свернутая чтоб она сама разворачивалась)
Создайте переменные например HAlarm,MAlarm,SAlarm:Integer;
С помощью Copy вырежьте из Memo значение и присвойте их нужной переменной. Так как вы используете Timer то прямо там сделайте проверку if then else и если значение будет равно то уже выполняйте действия

Цитата:
2) например создал программу при первом открытии у меня начал идти отчет таймера с 24:00:00 (ч,м,с)
Я по сидел в программе и закрыл ее и у меня прошло время например 1 час, получается надо час отнять и сохранить куда нить да по надежней чтоб после перезпгрузки компа и открытии заново этой же программы у меня уже шел отчет с 23:00:00 и так далее....
Если вы закроете программу , то ваша программа не как не узнает что прошел час , если только она будет использовать время Windows и при закрытии она сохраняла бы время закрытия в файл или реестр а при запуске она бы сщетала сколько прошло времени от закрытия до запуска

Цитата:
3)
Например тот же самый способ как и в первом примере, то время которое я спарсил и время мое которое отображается с label если они сходятся то выполняется действие, но мне надо наоборот чтоб за 5 минут например выполнилась одно действие...
Дайте пару примеров, или где по читать подобное ?
Так тут просто например ставьте чекбокс если он true тогда после того как присвоите переменной MAlarm значение напишите еще - 5 // MAlarm:=StrToInt( Copy(memo1.lines[0], 0, 2))-5;// если чекбокс false присваивайте значение без вычитания
ClMlD вне форума Ответить с цитированием
Старый 19.11.2013, 21:57   #3
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Зачем вообще парсить и в мемо записывать, затем чтобы опять спарсить? В системе есть прекрасный тип TTime. Парсите, в него записывайте, если надо отобразить, уже отображайте из переменной этого типа...
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 19.11.2013, 21:59   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
В системе есть прекрасный тип TTime. Парсите, в него записывайте, если надо отобразить, уже отображайте из переменной этого типа...
Это как? Можно подробнее? Насчет записывания в TTime
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.11.2013, 22:14   #5
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

ИМХО TTime это функция которая возвращает текущие время , не разу не пробовал что либо ей присваивать =)
ClMlD вне форума Ответить с цитированием
Старый 20.11.2013, 02:28   #6
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

TTime - это тип. Функция - Time (для слепых, там одна буква в начале).

Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  tm1:TTime;
begin
  tm1:=time; //типу времени присваиваю результат функции возврата времени
  Caption:=TimeToStr(tm1); //меняем капшен формы на время записанное в TTime переменную
//так же к типу TTime применимы почти все функции, которые применяются к TDateTime, оба типа истинно целочисленные, по этому и считаются как целочисленные. 
//Только TTime хранит в себе дату первого дня эры никса. "FormatDateTime('hh:ss', tm1);" выдаст часы и секунды, без минут.
end;
Специально для "умных" людей, которые простейшего загуглить не могут.
Я надеюсь вам про типы TDate и TDateTime рассказывать не надо?
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 20.11.2013 в 10:21.
alextrof94 вне форума Ответить с цитированием
Старый 20.11.2013, 21:56   #7
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Ну есть такой экономический календарь и там показывает время во сколько выйдет новость, вот я и решил парсить в мемо1 потом сделать оповещяние так как бывает сижу за компом так что могу отвлечься и забыть вообще) а это не есть хорошо) спасибо за ответы буду тестировать)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 21.11.2013, 01:24   #8
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Создай динамический массив из TTime. Если надо еще и даты указывать, то TDateTime.
Работай с этим массивом напрямую. А если надо выводить информацию, то выводи ее из массива куда угодно. Не будь тем, кого говнокодер (я) считает говнокодером.
Работая напрямую с массивом типа TTime (TDateTime), ты ускоришь работу программы (не надо будет парсить каждое значение), и облегчишь написание программы (не надо будет писать функцию парсинга).
Вывод на мемо будет простой:
Код:
Memo1.clear;
for i:=0 to TimesCount do
 Memo1.Lines.Add(TimeToStr(TimeArray[i]));
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 21.11.2013 в 01:27.
alextrof94 вне форума Ответить с цитированием
Старый 21.11.2013, 02:41   #9
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

Фу сколько пантов
ClMlD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с таймером С# JK0 Помощь студентам 1 31.10.2011 16:25
Работа с таймером... misher Свободное общение 11 15.07.2010 15:26
работа с таймером Kazik Помощь студентам 5 04.06.2010 21:07
Работа с таймером LordTor Общие вопросы Delphi 1 09.11.2009 14:08