Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Windows.Beep [D7, WinXP]


vayrus ©   (2005-04-14 17:36:00) 

Дано: форма с Button1 и Memo1.
В Memo1 имеется n-е количество строк 'Windows.Beep (Tone; Duration)'
с различными значениями Tone и Duration.
Вопрос: как при нажатии на кнопку Button1 проиграть последовательно
все строки в Memo1 (должна получится мелодия)?
Примечание: Windows.Beep - это процедура для извлечения звука
из динамика ПК.


Тестировщица   (2005-04-14 18:04:00) [1]

"В лоб" задача решается достаточно просто. Вот пример решения. Имхо, возможностей для упрощения и оптимизации - море -)

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
   Tone,Duration:cardinal;
begin
   for i:=0 to Memo1.Lines.Count-1 do
   begin
       Tone:=StrToInt(Copy(Memo1.Lines[i],1,pos(';',Memo1.Lines[i])-1));
       Duration:=StrToInt(Copy(Memo1.Lines[i],pos(';',Memo1.Lines[i])+1,Length(Memo1.Lines[i])-pos(';',Memo1.Lines[i])));
       Windows.Beep(Tone,Duration);
   end;
end;


BFG9k   (2005-04-14 17:53:00) [2]

Боюсь, не успею ответить - перекинут в media ;-)


Тестировщица   (2005-04-14 17:50:00) [3]

А зачем такие сложности? Почему просто не записать в мемо строки вида Tone; Duration ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо