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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2013, 15:45   #1
niikitos
Пользователь
 
Регистрация: 11.04.2013
Сообщений: 10
По умолчанию windows.beep как остановить ?

как не аварийно остановить воспроизведение звука ?
Код:
windows.Beep(1000,200);
niikitos вне форума Ответить с цитированием
Старый 10.05.2013, 16:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Никак. Эта функция неуправляема.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2013, 16:20   #3
niikitos
Пользователь
 
Регистрация: 11.04.2013
Сообщений: 10
По умолчанию

Ладно, хоть за инфу спс.

А есть ли какая нибудь управляемая функция?

Для воспроизведение коротких недолгих звуков. Если точнее Азбуки Морзе.

Последний раз редактировалось Stilet; 10.05.2013 в 17:09.
niikitos вне форума Ответить с цитированием
Старый 10.05.2013, 16:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если это короткие звуки, то зачем прерывать?
Сделай сопроцесс, в нем пропикивай этой функцией звуки. Если они не оч. длинные то ты всегда на любом пике сможешь прервать весь цикл.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2013, 16:32   #5
niikitos
Пользователь
 
Регистрация: 11.04.2013
Сообщений: 10
По умолчанию

а если текст длинный ?
niikitos вне форума Ответить с цитированием
Старый 10.05.2013, 16:42   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

а какая разница длинный текст или нет .... "пикаешь" то ты только отдельные знаки а не ввесь текст одним "пиком"
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 10.05.2013, 17:18   #7
niikitos
Пользователь
 
Регистрация: 11.04.2013
Сообщений: 10
По умолчанию

а разница в том пока весь текст не прослушаешь не остановиться..
niikitos вне форума Ответить с цитированием
Старый 10.05.2013, 17:20   #8
niikitos
Пользователь
 
Регистрация: 11.04.2013
Сообщений: 10
По умолчанию

еще нужна помощь. когда текст воспроизводится то после пробета повторяется последний символ. в чем проблемам ?
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
s:=edit1.Text;
for i:=1 to length(s) do
begin
 case s[i] of
  'a','A','À','à': t:='.-';
 'b','B','Á','á': t:='-...';
 'c','C','Ö','ö': t:='-.-.';
 'd','D','Ä','ä': t:='-..';
 'e','E','Å','å','¸','¨': t:='.';
 'f','F','Ô','ô': t:='..-.';
 'g','G','Ã','ã': t:='--.';
 'h','H','Õ','õ': t:='....';
 'i','I','È','è': t:='..';
 'j','J','É','é': t:='.---';
 'k','K','Ê','ê': t:='-.-';
 'l','L','Ë','ë': t:='.-..';
 'm','M','Ì','ì': t:='--';
 'n','N','Í','í': t:='-.';
 'o','O','Î','î': t:='---';
 'p','P','Ï','ï': t:='.--.';
 'q','Q','Ù','ù': t:='--.-';
 'r','R','Ð','ð': t:='.-.';
 's','S','Ñ','ñ': t:='...';
 't','T','Ò','ò': t:='-';
 'u','U','Ó','ó': t:='..-';
 'v','V','Æ','æ': t:='...-';
 'w','W','Â','â': t:='.--';
 'x','X','ü','ú': t:='-..-';
 'y','Y','Û','û': t:='-.--';
 'z','Z','Ç','ç': t:='--..';
 '×','÷': t:='---.';
 'Ø','ø': t:='----';
 'Ý','ý': t:='..-..';
 'Þ','þ': t:='..--';
 'ß','ÿ': t:='.-.-';

 '1': t:='.----';
 '2': t:='..---';
 '3': t:='...--';
 '4': t:='....-';
 '5': t:='.....';
 '6': t:='-....';
 '7': t:='--...';
 '8': t:='---..';
 '9': t:='----.';
 '0': t:='-----';

 '.': t:='......';
 ',': t:='.-.-.-';
 ':': t:='---...';
 ';': t:='-.-.-.';
 '?': t:='..--..';
 '!': t:='--..--';
 '/': t:='-..-.';
end;
for j:=1 to length (t) do
 if t[j]='.'
 then
  begin
  windows.Beep(1000,200);
  Application.ProcessMessages;
  sleep(200);
  end
 else
  if t[j]='-'
  then
   begin
   windows.Beep(1000,600);
   Application.ProcessMessages;
   sleep(200);
   end;
   sleep(400);

end;
end;
niikitos вне форума Ответить с цитированием
Старый 11.05.2013, 20:22   #9
VKBR
 
Регистрация: 08.05.2013
Сообщений: 8
По умолчанию

вероятно из-за того, что символ пробела не прописан в case. думаю поможет, если добавить строчку в case:
Код:
' ': t:='';
или просто использовать какое-либо значение по-умолчанию
Код:
begin
 case s[i] of
  'a','A','À','à': t:='.-';
.
.
  '/': t:='-..-.';
 else
  t:='';
end;
В последнем случае любой символ, не прописанный в case, будет игнорироваться.
VKBR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как остановить службу Windows noname_06 Общие вопросы Delphi 3 04.04.2013 02:14
ПРОБЛЕМЫ В WINDOWS 7 С BEEP!!! feniks_black Windows 6 03.12.2012 15:47
Windows API-запустить или остановить устройство niknv Win Api 3 21.09.2011 15:58
Windows.Beep garyanikin Помощь студентам 3 04.01.2010 10:56