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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 20:19   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Тяжелый случай. Составляй файл, в котором делай такие записи:
Код:
1 01 6:18 12:30 14:20 ...
2 01 6:17 12:30 16:41 ...
...
И так далее, 366 записей. Потом программно получать месяц и число и искать соответствующую строку в файле.Потом считывать в список времена в строке файла и делать проверку раз в минуту.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 20:37   #12
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

вот что у меня получилось
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Label1.Caption:=TimeToStr(Time);
 if formatdatetime('ddmmyy',date)='010109' then
begin
  if timetostr(time)='6:18:00' then
  begin
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  done:=false;
  end;
  if timetostr(time)='12:30:00' then
  begin
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  done:=false;
  end;
  if timetostr(time)='14:20:00' then
  begin
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  done:=false;
  end;
  if timetostr(time)='16:40:00' then
  begin
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  done:=false;
  end;
  if timetostr(time)='18:10:00' then
  begin
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  done:=false;
  end;
end;
но это заготовка всего на один день....не могу же 365 раз написать так...у кого какие идеи????
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 01.10.2009, 20:39   #13
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

http://www.programmersforum.ru/showp...7&postcount=11
Проще не придумаешь. Разве, что формулу вывеести.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 20:40   #14
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Тяжелый случай. Составляй файл, в котором делай такие записи:
Код:
1 01 6:18 12:30 14:20 ...
2 01 6:17 12:30 16:41 ...
...
И так далее, 366 записей. Потом программно получать месяц и число и искать соответствующую строку в файле.Потом считывать в список времена в строке файла и делать проверку раз в минуту.
не думаю что я справлюсь с этим.....но если кто поможет буду рад
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 01.10.2009, 20:55   #15
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Задай строку-маску:
1 01 6:18 12:30 14:20 16:40 18:10
Скопируй её 366 раз в текстовик. Просто нажимай стрелку вниз на нужной позиции, затем backspace и нужную цифру. Один столбик заполнить можно за 2 минуты.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 22:32   #16
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Задай строку-маску:
1 01 6:18 12:30 14:20 16:40 18:10
Скопируй её 366 раз в текстовик. Просто нажимай стрелку вниз на нужной позиции, затем backspace и нужную цифру. Один столбик заполнить можно за 2 минуты.
заполнить то не проблема...а зачем в начале писать 1 01???может просто 1?и что с этим дальше делать???
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 01.10.2009, 23:04   #17
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

ТС уточните конкретнее условие задачи - какой практический смысл в этой проге, для чего ее можно использовать? Тогда можно и поразмыслить над оптимизацией алгоритма.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 02.10.2009, 10:41   #18
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

1 01 - число и месяц.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.10.2009, 12:25   #19
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

оптимизировать можно потому что второй параметр никогда не меняеться т.е 12:30 не меняеться...и так получаеться
1 01 6:18 14:20 16:40 18:10
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 16.04.2010, 03:46   #20
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

ребят я все еще работаю над этим будильником вот до чего я дошел
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
maskedit1.Clear;
MediaPlayer1.FileName:='d:\0035.mp3';
currentmonth:=formatdatetime('m',date);
if currentmonth='1' then
begin
 currentday:=formatdatetime('d',date);
 m:=strtoint(currentday);
 k:=box1.Items.Strings[m-1];
 yira:=copy(k,1,8);
 malhbuza:=copy(k,10,8);
 markaja:=copy(k,19,8);
 phura:=copy(k,28,8);
end
else if currentmonth='2' then
begin
currentday:=formatdatetime('d',date);
 m:=strtoint(currentday);
 k:=box2.Items.Strings[m-1];
 yira:=copy(k,1,8);
 malhbuza:=copy(k,10,8);
 markaja:=copy(k,19,8);
 phura:=copy(k,28,8);
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 form1.Caption:='AZAN'+' '+TimeToStr(Time);
 if timetostr(time) = maskedit1.text  then
 begin
MediaPlayer1.Open;
MediaPlayer1.Play;
done:=false;
end;
if timetostr(time)='12:30:00' then
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
done:=false;


end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
 if timetostr(time)=yira then
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
done:=false;
end;
if timetostr(time)=malhbuza then
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
done:=false;
end;
if timetostr(time)=markaja then
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
done:=false;
end;
if timetostr(time)=phura then
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
done:=false;
end;
end;
как видите в переменные типа string я копирую времена по которым будильник должен сработать,но даже когда выражение if timetostr(time)=yira истинно будильник все равно не включается.что я делаю не так.два таймера я завел просто ради эксперимента потому что с одним таймером та же беда
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самодельный будильник .Phoenix Общие вопросы Delphi 5 20.09.2009 11:38
Будильник RealSHELS Свободное общение 6 30.05.2008 21:40
Собственная компонента: будильник redred Компоненты Delphi 1 13.05.2008 06:48
Будильник DeDoK Общие вопросы Delphi 7 21.02.2008 10:02
Оцените будильник Viteef Софт 11 15.06.2007 17:57