372______________________________________________Глава'

аудио и видео (*.wav,*.mid,*.avi)       *.wav; *.mid; *.avi                   :

аудио (*.wav,*.mid)                   *.wav;*.mid

видео (*.avi)                             *.avi

все файлы                           *.*                               i

В меню достаточно задать одну команду: Файл Открыть. Обработчик событи|
OnClick этой команды может содержать оператор

if (OpenDialogl->Execute())
(

MediaPlayerl->FileName = OpenDialogl->FileName;

MediaPlayerl->Open();

)

который открывает устройство мультимедиа, соответствующее выбранному пол1
зователем файлу. При этом надо проследить, чтобы в компоненте MediaPlaye
свойство DeviceType равнялось dtAutoSelect. Это обеспечит автоматический вь
бор соответствующего устройства мультимедиа исходя из расширения выбранног
файла.

В компоненте MediaPlayer при желании можно указать имя файла FileNanu
открываемого в момент начала выполнения приложения. Тогда надо установит
свойство AutoOpen в true. Впрочем, это, конечно, не обязательно.

Вот и все. Можете выполнять свое приложение и наслаждаться музыкой ил
фильмами (если, конечно, все вопросы, связанные с настройкой мультимедиа в
вашем компьютере решены).

Чтобы все-таки использовать какие-то события компонента MediaPlayer, д(
вайте немного усложним приложение. Введем в него четыре метки (рис. 5.21).
первой из них (Labell) укажем надпись «Файл:». Во второй (Label2) будем пр(
граммно отображать состояние проигрывателя, в третьей (Label3) — последним
вызванную операцию. Четвертую метку (Label4) расположим рядом с меткой Lt
bell так, чтобы она служила ее продолжением. В ней мы будем отображать имя з;

груженного файла, но в сокращенном виде с многоточиями (см. рис. 5.21), есл
имя файла не помещается в отведенном для него месте.

Код, обеспечивающий подобную обратную связь в приложении, может быт
следующим.

^include "filectrl.hpp"

AnsiString ModeStr[7] = ("He готово", "Остановлено","Воспроизведение",
"Запись","Поиск","Пауза","Открыто"} ;

AnsiString ButtonStr[9] = {"Воспроизведение","Пауза","Стоп",

"Следующий","Предыдущий","Вперед","Назад","Запись","Конец"}
//————————————————————————-

void _fastcall TFormI::FormCreate(TObject *Sender)

(

Label4->Caption = MinimizeName(MediaPlayerl->FileName,Label4->
Canvas,200);

Label2->Caption = "Состояние: " + ModeStr[MediaPlayerl->Mode];

MediaPlayerl->Notify = true;

//————————————————————————_

void _fastcall TFormI::OpenClick(TObject *Sender)
(

if (OpenDialogl->Execute())
(