Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> C++ Builder -> Использование ActiveX в приложениях C++Builder


Создание элементов управления ActiveX с помощью C++ Builder
(на примере Shockwave Flash)

Источник: www.proglib.ru

В этой статье вы познакомитесь с элементами управления ActiveX (ActiveX controls) и научитесь использовать их в своих приложениях. Статья ориентирована на тех, кто выбрал в качестве среды разработки C++Builder, хотя я не думаю, что будет сложно переделать приведенные примеры на Delphi (тем более, что основная часть работы будет проделана IDE, и, вы не поверите, полностью рабочее приложение будет состоять всего из двух !!! строчек кода). Итак, если вы готовы, приступим.

Что нам нужно?
1. Я использовал C++Builder версии 3.0, но приведенная методика будет работать и в более старших версиях.
2. Установленный Macromedia Flash (либо Flash или Shockwave Player). Я работал и c 4-й, и c 5-й версиями.
3. Файл с откомпилированным (экспортированным) роликом Macromedia Flash. Эти файлы имеют расширение swf.

Задача: Мы напишем проигрыватель роликов swf. Вы можете использовать эти ролики для каких-то мультимедийных вставок в своих приложениях, для создания анимированных эффектов и т.п.

Первое, что нам нужно сделать - это импортировать элемент управления ActiveX. Элементы ActiveX, доступные для импорта, можно просмотреть, открыв меню Component и щелкнув по пункту Import ActiveX Contorl... Откроется диалог, подобный нижеприведенному (список элементов управления может отличаться):

Если у вас установлен Macromedia Flash, в списке должен присутствовать пункт Shockwave Flash (Version 1.0) (может быть и другая версия и вообще, тут многое зависит от версии Windows и Macromedia Flash). Выделите его, при этом в поле Class name должно появиться что-то вроде TShockwaveFlashProxy (или просто TShockwaveFlash). В поле Unit dir name будет показан путь, где будут созданы файлы импортированного элемента управления, которые нам понадобятся; измените этот путь, если он вас не устраивает. Я буду предполагать, что это поле осталось без изменения и все файлы сгенерируются в каталоге $(BCB)\LIB. Можно также изменить будущее расположение иконки компоненты в палитре компонент, изменив значение Palette page, но особых причин этому я не вижу. Нажмите кнопку Install... внизу диалога. Теперь нам нужно выбрать, в какой файл проекта должен быть помещен импортируемый нами элемент управления. Можно выбрать уже существующий файл проекта (обычно предлагается dclusrxx.bpk, xx-номер версии C++Builder), либо создать новый проект, что мы и сделаем, перейдя на закладку Into new package и выбрав путь и имя файла проекта (в общем-то здесь все не принципиально). После нажатия на кнопку OK будут сгенерированы все файлы, необходимые для импорта выбранного нами элемента управления ActiveX и автоматически будет предложено откомпилировать (или перекомпилировать) созданный проект. Нажимаем Yes и после нескольких секунд у нас в закладке ActiveX палитры компонент красуется значок импортированного нами элемента управления TShockwaveFlashProxy:

Теперь самое время создать наш проект. Поместите на основную форму проекта две кнопки - btnPlay и btnStop и созданную нами компоненту TShockwaveFlashProxy1. Установите ее высоту и ширину, в поле Movie нужно забить полный путь и имя файла проигрываемого ролика (все это, конечно, можно делать и во время выполнения программы). Свойство Loop контролирует цикличность ролика, Menu управляет отображением меню, Quality регулирует качество изображения и т.д. У вас должно получиться что-то типа этого:

Осталось написать код обработки нажатия кнопок. Вот он:

void __fastcall TForm1::btnPlayClick(TObject *Sender)
{ 
   ShockwaveFlashProxy1 -> Play();
}
//-----------------------------------------------------------------
void __fastcall TForm1::btnStopClick(TObject *Sender)
{
   ShockwaveFlashProxy1 -> Stop();
}

Как видите, я вас не обманул - мы написали полноценный проигрыватель роликов Macromedia Flash в две строки.

Если вам интересно, какие еще методы и свойства предлагает элемент упарвления TShockwaveFlashProxy, вы можете изучить сгенерированные файлы .cpp и .h либо библиотеку типов swflash.ocx, лежащую в каталоге $(WINDOWS_SYSTEM)\Macromed\Flash\ (для этого выберите пункт меню File\Open..., в выпадающем списке типов файлов выберите Type Library (*.tlb,*.dll,*.ocx,*.exe,*.olb) и перейдите в указанную папку).

Заключение

Вы, наверное, заметили, что в списке предлагаемых к импорту элементов управления ActiveX есть множество полезных вещей. Так, например, вы легко можете импортировать Microsoft Internet Controls (в версии 5 C++Builder он уже есть в палитре компонент) и написать свой веб-браузер. После установки продуктов Adobe Acrobat в этом списке появляется элемент TSVGCtlProxy, позволяющий просматривать графику в активно продвигаемом Adobe формате SVG. Тут же есть и DirectAnimation Library, и Windows Media Player, и еще множество других элементов управления: в разных версиях Windows их огромное множество. Так что экспериментируйте.

Удачного программирования!



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.