IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Сегодня мы говорим об играх, которые затронут вас за живое.
Комментариев: 31
В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970 Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Тестируем игровой компьютер на базе AMD 970 и двух Radeon RX 480.
Комментариев: 19
Топ-10 игр для большого экрана: от Watch Dogs 2 до Battlefield 1 Спец > Топ-10 игр для большого экрана: от Watch Dogs 2 до Battlefield 1
Современные проекторы позволяют устроить игровой «кинотеатр» с качественной картинкой прямо дома. Какие игры при этом лучше взять?
Комментариев: 9
Крепкий хозяйственник. Превью Urban Empire В разработке > Крепкий хозяйственник. Превью Urban Empire
Финские разработчики высказываются о важности диалога между властями и обычными гражданами.
Комментариев: 5

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

Сегодня мы познакомим вас с интерфейсом весьма популярной среды программирования — 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 из раздела «Игрострой» вы можете взять исходники медиаплеера, способного проигрывать большинство современных аудио- и видеоформатов.

Технологии развиваются, а за ними поспешают и разработчики игр. Похоже, до пресловутой фотореалистичной графики осталось совсем немного.
В 2016 году вышло немало игр, достойных звания лучшего боевика.
Может ли дополнение побороться на равных с крупными ролевыми играми? Вот и проверим.
До Нового года осталось совсем чуть-чуть! Принимайте поздравления от разработчиков любимых игр.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Рецензии > Я и мой верный хранитель. Обзор The Last Guardian
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Игра в кубики. В чем сила Minecraft?
Железный цех > Идеал. Тестирование игрового компьютера MSI Aegis Ti
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Спец > Влюбиться в убийцу: история серии Assassin’s Creed
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > Горячий осенне-зимний сезон Windows Store. Главные игровые новинки
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования