Процедура Beep, Система, Delphi, статті

Ця процедура не має ніяких параметрів. Її оголошення виглядає досить-таки просто:

Beep;

Суть цієї процедури – відтворювати стандартний звуковий сигнал, встановлений в Windows, якщо є звукова карта і налаштований стандартний звук, якщо ж ні, то звук надійде через динамік комп’ютера у вигляді короткого клацання. Її можна використовувати, наприклад, при введенні користувачем не тих даних, або при закритті форми:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Beep;
end;

З першої процедурою ми розібралися. Тепер подивимося другу …

Функція MessageBeep


Ця функція є більш серйозною, вона визначена як:

function MessageBeep(uType:word) : boolean;

Параметр uType вказує відтворений звук, як ідентифікатор розділу [Sounds] реєстру, в якому записані звуки, які супроводжують ті, чи інші події Windows. Параметр uType може приймати такі значення:


Треба зазначити, що ця функція відтворює звук асинхронно, тобто під час відтворення звуку Ваше додаток продовжує працювати. Після запиту звуку функція MessageBeep передає управління викликала її функції.

Якщо неможливо відтворити зазначений звук, то функція спробує відтворити стандартний системний звук, встановлений за умовчанням, якщо і це неможливо, то буде відтворено стандартний сигнал через динамік.

Ну і нарешті, залишилася сама цікава і корисна функція відтворення звуку, про неї ми зараз і поговоримо.

Функція PlaySound


Ця функція може відтворювати будь-які хвильові звуки, а не тільки звуки подій Windows. Функція API Windows, параметри якої описані в модулі mmsystem. Тому для використання цієї функції в Ваших програмах, необхідно включити в розділ uses модуль mmsystem. Функція PlaySound визначена так:

function PlaySound(pszSound:PChar; hmod:HINST; fdwSound:Cardinal):boolean;

Параметр pszSound є нуль терминированной рядком (останній символ рядка має нульовий код), він визначає відтворений звук. Параметр hmod використовується у випадку, коли звук береться з ресурсу, оскільки ми цього робити не будемо, то можна цей параметр ставити рівним 0 або nil.

Останній параметр fdwSound є безліччю, яке визначає як буде відтворюватися звук (режим відтворення). Наведу найбільш важливі значення цієї множини для відтворення довільних хвильових прапорів.


Важливо: прапори можна комбінувати операцією or.

Зазначений параметром pszSound звук, повинен підходити для встановленого драйвера пристрою відтворення хвильових файлів, а також повинен міститися в доступну пам’ять.

Перервати відтворення звуку можна виконавши оператор

PlaySound(0, 0, SND_PURGE);

або шляхом завдання нового звуку.

Наприклад, щоб багаторазово і асинхронно програти небудь звук, вибраний за допомогою OpenDialog, можна написати такий код:

procedure TForm1.Button1Click(Sender: TObject);
var PCh: PChar;
begin
if OpenDialog1.Execute then
begin
StrPCopy(PCh,OpenDialog1.FileName);
PlaySound(Pch,0,SND_ASYNC or SND_LOOP);
end;
end;

Ну ось, сподіваюся все ясно! Наступного разу буде що-небудь складніше і поцікавіше!

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*