Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 778

/ вопрос открыт /

Здравствуйте, эксперты!

У меня чёт код отказывается работать, вроде всё правильно, и компилируется а работать не работает.
Помогите понять в чём проблема, и попутно сделать, на 12 часов допустим 12 воспроизведений файла, на 3 часаЮ 3 вопсроизведения, а то руками много кода получится говнистого если писать каждый раз 1. плэй 2. стоп 2. плэй 4. фрии. ... и так далее...

  MediaPlayer1.FileName := './data/gong.wav';
  MediaPlayer1.Open;
  g1 := timetostr(time);
  g2 := timetostr(strtotime('0:00:00'));
  g3 := timetostr(strtotime('3:00:00'));
  g4 := timetostr(strtotime('6:00:00'));
  g5 := timetostr(strtotime('5:00:00'));
  g6 := timetostr(strtotime('12:00:00'));
  g7 := timetostr(strtotime('15:00:00'));
  g8 := timetostr(strtotime('18:00:00'));
  g9 := timetostr(strtotime('21:00:00'));
  if g1 = g2 then
    MediaPlayer1.Play
  else
    Label2.Caption := 'не работает тварь...';

Приложение:
  1.  


winner13 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: winner13 (статус: 1-ый класс)
Вопрос отправлен: 24 ноября 2011, 16:00
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 15; последнее сообщение — 25 ноября 2011, 13:39; участников в обсуждении: 6.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 24 ноября 2011, 16:50 [#1]:

Что мешает вывести g1 с g2 и посмотреть, чему они равны?
min@y™

min@y™ (статус: Доктор наук), 24 ноября 2011, 17:03 [#2]:

А что мешает таймер заюзать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Егор

Егор (статус: 10-ый класс), 24 ноября 2011, 17:57 [#3]:

что-то я не понял, что же надо-то? объясни по-другому
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
winner13

winner13 (статус: 1-ый класс), 24 ноября 2011, 18:53 [#4]:

Значения проверил, идентичны, скорей всего дело в таймере. Через него завтра на работе опробую.

Теперь дело обстоит в проигрывании звука, как сделать так чтобы MediaPlayer1.Play команда сработала нужное количество раз не прибегая к такому методу как (допустим мне на три часа нужно чтобы медифаил проигрался 3 раза, вот говнкод которого бы наверно не следовало писать но всё таки.)

MediaPlayer1.Play;
MediaPlayer1.Stop;
MediaPlayer1.Play;
MediaPlayer1.Stop;
MediaPlayer1.Play;
MediaPlayer1.Stop;

По условию мне нужно чтобы фаил проигрывался в три часа три раза, в шесть часов , шесть раз, в девять девять. Муторно руками писать да и как то на говнокод смахивает есть ли другие решения ????
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 24 ноября 2011, 19:00 [#5]:

Слышь, давай-ка объясни, а нахрена всё это?
Ну, блин, заинтриговал, чесслово!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Егор

Егор (статус: 10-ый класс), 24 ноября 2011, 19:06 [#6]:

MediaPlayer1.Play;
 MediaPlayer1.Stop;
 MediaPlayer1.Play;
 MediaPlayer1.Stop;
 MediaPlayer1.Play;
 MediaPlayer1.Stop;
так не пойдёт. проигрывание музыки идёт параллельно с выполнением программы. т.е. ты запустил музыку (play) и тут же остановил её (stop). музыка будет "играть" лишь несколько микросекунд.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Егор

Егор (статус: 10-ый класс), 24 ноября 2011, 19:07 [#7]:

ты не часы пишешь случаем? типа, каждый час нужное число раз сделать "бомммм"?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 24 ноября 2011, 20:33 [#8]:

MediaPlayer1.Play;
MediaPlayer1.Stop;
MediaPlayer1.Play;
MediaPlayer1.Stop;
MediaPlayer1.Play;
MediaPlayer1.Stop;
это может сработать, если у MediaPlayer свойство Wait установлено в true. Но тогда программа не будет реагировать ни на какие действия пользователя, пока не доиграет плеер.
Wait (public) Determines whether a media control method returns control to the application only after it has been completed.
winner13

winner13 (статус: 1-ый класс), 25 ноября 2011, 10:00 [#9]:

угу, типа часы, только не на каждый час, а на 12 , 3, 6, и 9 часов "бом", бой был, и чтобы нужное число раз именно пробило всё.

Кому интересен исходник, пожалуйста там к тому же я стрелки дорисовал конвасом, и двигаться заставил.

Вот : http://zalil.ru/32129976

П.С. Так и не понял как лучше проиграть определённое число раз медифаил =)
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 25 ноября 2011, 10:23 [#10]:

Так бы и сказал. Я написал такую прогу, но с наворотами. Медиаплеер там не используется. Прога говорит время бабским голосом каждый час и каждые полчаса (опционально), и генерит события, задаваемые пользователем. Могу подарить, вмете с исходниками.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
winner13

winner13 (статус: 1-ый класс), 25 ноября 2011, 11:21 [#11]:

Ты мне уже давал её, только у меня собрать не получилось из-за нехватки компонента какого - то. Не помню правда куда на диске засунул.
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 25 ноября 2011, 13:01 [#12]:

Так там же ЕХЕ-шник был жеж. Нафига собирать?

Цитата (winner13):

Не помню правда куда на диске засунул.

Заведи поиск по маске "workerclocker.*".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 25 ноября 2011, 13:04 [#13]:

Цитата (winner13):

timetostr(strtotime('12:00:00'))

Прямо в рабочий полдень! Предлагаю рацуху:
timetostr(strtotime(timetostr(strtotime(timetostr(strtotime('12:00:00')))))) // штоб наверняка
виконання програми розпочинається з того самого мiсця, де призупинилося.

min@y™

min@y™ (статус: Доктор наук), 25 ноября 2011, 13:28 [#14]:

Цитата (bugmenot):

Прямо в рабочий полдень! Предлагаю рацуху:

timetostr(strtotime(timetostr(strtotime(timetostr(strtotime('12:00:00')))))) // штоб наверняка


Гыгыгы, жжош, сцуко!
Но проще, конечно, так:
T = 0.5; // это в литрах! :) Вот это я понимаю, РАБОЧИЙ полдень!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
winner13

winner13 (статус: 1-ый класс), 25 ноября 2011, 13:39 [#15]:

Это как бы он из моего кода, просто не работает хоть тресни, вот я уже с нех делать перестраховывался =)
Не решимых проблем нет, есть неприятные для нас решения.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:40
Выполнено за 0.03 сек.