Робимо свій будильник, блог delphi-програміста

У цій статті, я хотів би розповісти про те, як можна зробити свій будильник. Так, я знаю, що в мережі Інтернет таких прикладів повно і взагалі такі програми на комп'ютер у вигляді будильників, «напоминалок» і так далі величезна кількість у вигляді готового і професійного, але я вирішив зробити щось для себе. Це звичайно буде дуже просто організовано і робив я виключно для себе і своїх привілеїв. Адже я, коли лягаю спати, завжди на ноутбуці включаю програвач з багатьма альбомами музики. Ну мені, наприклад, дуже зручно під музику засипати, та й думаю, що багатьом теж. Так ось, звичайно всю ніч, щоб музика грала - не справа, так як посеред ночі від неї ж можеш і прокинутися. Так ось, я вирішив зробити так, щоб можна було поставити будильник на час, коли музика буде відключатися, а точніше не відключатися, а просто вимикатися системний звук на комп'ютері. Ну, а також можна буде встановити будильник, коли музика навпаки - буде включатися, тобто виходить звичайний будильник. Наприклад, встановимо час, щоб з 12 ночі до 1 годині ночі грала музика і вона вимикалася о першій годині ночі, а на 7-й годині ранку музика включалася (ось, що я зробив для себе). Так, я звичайно знаю, що можна це зробити за допомогою візуальних компонентів (TMediaPlayer), за допомогою бібліотеки (bass.dll), тобто зробити свій програвач і його зупиняти, програвати і так далі. Але я вирішив зробити - ну вже дуже по-простому. Я використовую програвач JetAudio. в якому якщо закінчується Плейлист, то він починається грати заново, так що мені не доведеться турбуватися про те, що раптом будильник спрацює в той момент, коли програвач зупинено (тобто всі пісні вже програні).

Так, ще хочу сказати, що це все можна зробити також з використанням свого власного таймера часу, але я вирішив зробити залежність від системного часу комп'ютера. Ми просто будемо перевіряти чи значення часу, встановлені користувачем, системному часу комп'ютера. У своєму проекті, я встановив TPageControl і створив 2 вкладки - Audio і Будильник. На вкладці Audio ми зможемо встановлювати час, через яке нам необхідно вимикати музику, а на вкладці Будильник ми будемо встановлювати час, коли ми будемо включати музику в якості будильника. На цих 2-х вкладках я встановив 6-ть TSpinEdit. по 3-тю на кожній. У них ми будемо встановлювати час у вигляді: години, хвилини, секунди окремо. Для початку на подію OnShow нашої форми ми напишемо код, який буде зчитувати системний час на момент запуску програми, щоб користувач потім сам зміг встановити, коли йому вимикати / вмикати будильник. Для цього ми скористаємося функцій FormatDateTime. а сам код буде наступним

Далі ми працюємо з вкладкою Audio. Додаємо на неї TTimer. а також кнопку, після натискання на яку ми будемо встановлювати час і запускати наш таймер, який буде стежити за тим, коли варто вимкнути системний звук. Так, не забуваємо встановити властивість Enabled в False у TTimer. Далі на кнопку Встановити, ми будемо активувати наш таймер, тобто Enabled будемо встановлювати в True. а на подію OnTimer ми напишемо наступний код

Та мало не забув, нам необхідно в Uses підключити модуль MMSystem. з даного модуля, нам знадобиться функція waveOutSetVolume. за допомогою якої ми і будемо відключати системний звук (встановлювати його в значення 0). Тобто, як ви бачите, ми кожну секунду перевіряємо час, встановлений користувачем, з системним часом комп'ютера, якщо воно співпало, то за допомогою функції waveOutSetVolume ми встановлюємо системний звук в 0 (гучність в 0), а програвач продовжує грати пісні, але ми їх вже не чуємо. Ось так тепер я засинаю під музику. Якщо мені треба будильник, то ми переходимо на вкладку Будильник. Там також встановлені 3-и TSpinEdit. а також встановимо ще один TTimer. у властивості Enabled. якого ми також встановимо в False. Далі на кнопку Встановити ми також активуємо наш TTimer. тобто Enabled встановлюємо в True. А на подію OnTimer нашого TTimer. який відповідає за будильник (включення музики) напишемо наступний код

Тобто, як бачите на будильник ми також перевіряємо час, встановлений користувачем, з системним часом комп'ютера, якщо співпала, то за допомогою функції waveOutSetVolume встановлюємо гучність на максимум, в результаті, так як програвач не припиняв грати, то він продовжує програвати пісні, а ми вже їх можемо і почути (в залежності від того - хто, як міцно спить =)).

Вимкнення музики можна було організувати шляхом завершення процесу. Тобто, можна було просто завершити процес програвача, але тоді вже з будильником треба думати, що щось своє. Ну ось такий - дуже простий будильник я зробив для себе, який і використовую зараз. Ось скріншоти:

Робимо свій будильник, блог delphi-програміста

Вихідні тексти статті можна скачати тут (повний проект)

Схожі статті