![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 ?