Программирование под Borland C++ Builder

Программирование под Borland C++ Builder

Мастерская — Программирование под Borland C++ Builder
«...поскольку вы хотите, что называется, живого кодинга, то мы возобновляем в журнале статьи по программированию в различных средах. Сегодня мы познакомим вас с интерфейсом весьма популярной среды программирования — Borland C++ Builder, создадим м
Игроманияhttps://www.igromania.ru/
Мастерская
Программирование под Borland C++ Builder

В письмах, которые приходят на игрострой-ящик редакции, а также на форуме «Игромании» вы просите нас опубликовать уроки по программированию. В той или иной форме программинг есть практически в каждом номере журнала — например, в виде уроков по скриптописанию, но поскольку вы хотите, что называется, живого кодинга, то мы возобновляем в журнале статьи по программированию в различных средах.

Сегодня мы познакомим вас с интерфейсом весьма популярной среды программирования — Borland C++ Builder, создадим медиапроигрыватель и попутно изучим синтаксис программы.

Первое свидание

Работу начнем с запуска приложения. Сразу после того, как C++ Builder загрузится, перед вами появятся два больших окна. В первом из них производится так называемое визуальное программирование — вынесение необходимых компонентов на форму программы. Во втором осуществляется кодинг. На верхнюю панель вынесен ряд базовых функций (Сохранение, Загрузка, Запуск программы) и несколько вкладок: перемещаясь по ним, можно выбрать необходимый компонент для приложения.

C++ Builder — уникальная среда программирования. В нем можно создавать приложения практически любой сложности.

В левой части главного окна располагаются две панели: Object TreeView (здесь отображаются иерархия объектов и их принадлежность к тому или иному классу) и Object Inspector — так называемый инспектор объектов, он позволяет настраивать свойства того или иного элемента. В этом же окне назначаются всевозможные события для компонента: обработчики нам предстоит написать самостоятельно, они в программную среду не встроены.

С интерфейсом Borland C++ Builder мы познакомились, переходим непосредственно к разработке медиапроигрывателя. Создайте новый файл и сохраните через меню File/ Save Project As.... В процессе работы несложно сохранять проект комбинацией клавиш Shift+ Ctrl+ S, через меню File/ Save All либо кликнув на кнопку с изображением множества дискет на панели инструментов. Сохраняйтесь почаще, при работе с Borland C++ Builder это очень важно.

Выберите вкладку System на инструментальной панели, затем один раз кликните по кнопке с изображением музыкальной ноты и видеоленты — это компонент MediaPlayer. Установите указатель мыши в любое место пустой формы и кликните левой кнопкой мыши — на экране появится новый элемент. Если вы хотите, чтобы объект был добавлен в центр рабочей области, то кликнуть по инструментальной панели нужно дважды.

Для перемещения объекта (слово «объект» мы будем использовать как синоним компонента) по рабочей области вам необходимо его выделить. Для этого достаточно щелкнуть по нему левой кнопкой мыши и, не отпуская кнопку, перетащить на новое место. Также переместите на форму программы компонент Panel из вкладки Standard на инструментальной панели (предпоследний пункт списка). Выделите компонент Panel1 и в инспекторе объектов в поле Align (вкладка Properties) кликните на параметр AlBottom: созданная панель займет всю нижнюю область будущего медиаплеера. Если хотите, то прямо сейчас можете изменить ее ширину и высоту.

Система иерархии

Наш медиаплеер. Выглядит не очень красиво, зато умеет проигрывать множество форматов.

Переходим к панели иерархии объектов — Object TreeView. Сделаем компонент MediaPlayer 1 дочерним по отношению к элементу Panel1. Для этого щелкните по компоненту MediaPlayer 1 в меню Object TreeView и переместите его на элемент Panel1 в том же окне. Выбранный объект станет дочерним по отношению к компоненту Panel1 и будет помещен на его форму. Останется лишь задать новое расположение MediaPlayer 1.

Сделаем следующий шаг — определим область, на которую будет транслироваться видео. Есть несколько вариантов решения задачи. Наиболее простой способ: выводить изображение на форму одного из визуальных компонентов VCL — например, на созданную нами панель или в отдельное окно. Поскольку мы лишь начинаем изучение основ программинга в C++ Builder, остановимся на варианте с окном. Не нужно создавать никаких новых компонентов, поэтому лучше удалить все лишнее пространство формы. Для этого «ухватите» мышкой нижнюю область приложения и тащите ее вверх до тех пор, пока она не исчезнет.

Разместим в рабочей области компонента Panel1 кнопку О ткрыть. Кликните левой кнопкой мыши по объекту Panel1, выберите вкладку Standard на панели инструментов и дважды кликните по компоненту Button1, содержащему изображение кнопки Ok. Задайте необходимое расположение компонента и, не снимая выделения с объекта, посмотрите на панель Object Inspector: на закладке Properties можно изменять свойства компонента. Если хотите изменить текст на поверхности кнопки, необходимо изменить описание элемента, содержащееся в поле Caption. Для смены шрифта поправьте параметр Font. Прочие настройки изменяются аналогичным образом.

Начинка программы

Мы определились с внешним видом медиаплеера: можете даже запустить утилиту и полюбоваться на дело рук своих (Run/ Run). Вы сразу обнаружите, что все кнопки программы недоступны, даже при нажатии на кнопку О ткрыть ничего не происходит. Чтобы все заработало, необходимо написать для каждой кнопочки свой собственный разработчик. Изучим, как это делается, на конкретном примере (как раз для кнопки О ткрыть).

Редактор фильтров позволяет установить типы файлов, которые могут быть открыты приложением.

Добавьте на форму приложения компонент OpenDialog из вкладки Dialogs на инструментальной панели. Нужно назначить ему действие, для этого кликните по объекту дважды левой кнопкой мышки — на переднем плане появится окно редактирования исходного кода программы. Вы увидите, что указатель мыши помещен между двумя фигурными скобками. Туда и нужно добавить код:

if (OpenDialog1->Execute())

{

MediaPlayer1->FileName=OpenDialog1->FileName;

MediaPlayer1->Open();

}

Нажмите F9 на клавиатуре и запустите приложение. Несмотря на то что все вроде бы работает, необходимо сделать еще кое-что. Выберите компонент Form1 на панели Object Inspector и измените некоторые свойства формы — в поле Caption задайте текст заголовка (произвольный). В поле BorderStyle выберите атрибут bsSingle, который не даст пользователю изменять размер окна. Перейдите на вкладку Events инспектора объектов, выберите строку OnClose и кликните дважды по пустому полю. В окне редактора кода между фигурных скобок впишите:

MediaPlayer1->Close();

Данный параметр необходим для завершения работы плеера перед закрытием формы.

Последние штрихи

Мы практически закончили работу над созданием полноценного медиапроигрывателя. Осталось задать типы файлов, которые может запускать программа. Для этого кликните левой кнопкой мыши по компоненту OpenDialog 1, на панели Object Inspector переключитесь на вкладку Properties и в поле Filter кликните по кнопке с многоточием. Перед вами окно редактора фильтров. В поле Filter Name вы должны указать описание фильтра — например, MP3, а в поле напротив тип открываемого файла — например, *. mp3. Добавьте несколько таких фильтров: mpeg, mp3, avi, wmv, wav. Напоследок создайте фильтр с описанием В се форматы и в поле Filter впечатайте символ звездочки — *.

Чтобы управлять оптическим приводом прямо из окна программы, добавьте на форму приложения еще две кнопки — Open CD/ DVD- ROM и Close CD/ DVD- ROM и определите им действие открытия и закрытия лотка. Исходный код выглядит так:

mciSendString ( "Set cdaudio door open wait", NULL, 0, NULL);

mciSendString ( "Set cdaudio door closed wait",NULL,0,NULL);

Первая команда открывает лоток привода, вторая — закрывает его. Если вы хотите, чтобы при компиляции какая-то строка не учитывалась, просто ставьте перед ней два прямых слеша — //. Обработчики событий в итоге должны выглядеть следующим образом:

//---------------------------

void __ fastcall TForm 1:: Button2 Click( TObject * Sender)

{

mciSendString ( "Set cdaudio door open wait", NULL, 0, NULL);

}

//---------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

mciSendString ( "Set cdaudio door closed wait",NULL,0,NULL);

}

//---------------------------

Если у вас на компьютере установлено несколько оптических дисководов, то функции открытия/закрытия будут обращаться к ведущему приводу.

Тестирование приложения — обязательный этап разработки любой утилиты.

* * *

Мы изучили азы работы в одной из самых популярных сред программирования Borland C++ Builder, а заодно создали неплохой медиаплеер, который с легкостью «пережевывает» большинство популярных аудио- и видеоформатов. В сегодняшнем уроке мы акцентировали внимание на принципах визуального программирования, в следующем же месяце займемся кодингом.

Исходники плеера

С нашего DVD из раздела «Игрострой» вы можете взять исходники медиаплеера, способного проигрывать большинство современных аудио- и видеоформатов.

Комментарии
Загрузка комментариев