[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / C - C++ /

Создание элементов управления 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)MacromedFlash (для этого выберите пункт меню FileOpen..., в выпадающем списке типов файлов выберите 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 их огромное множество. Так что экспериментируйте.

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




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / C - C++ /

Пишем CD проигрыватель 2
28-05-2010   

Сейчас я покажу как можно написать простой проигрыватель CD дисков. Для начала разместим все нужные компоненты на форме (см. рисунок)... подробнее

Кол. просмотров: общее - 4165 сегодня - 0

Пишем браузер
28-05-2010   

Продолжаю тему клонирования программ darkamstera на Delphi в С++Builder. В этой статье я покажу, как с помощью стандартных компонентов, можно создать свой браузер. Браузер будет на движке всеми-любимого InternetExplorer. Наш зверь сможет ходить по URL... подробнее

Кол. просмотров: общее - 2936 сегодня - 0

Информация о системе
28-05-2010   

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

Кол. просмотров: общее - 2956 сегодня - 0

FTP клиент своими руками
28-05-2010   

Здраствуй, сечас я покажу, как в CBuilder можно создать свой простой FTP-клиент, похожий пример можно найти в документации C++Builder Developnets Guilde... подробнее

Кол. просмотров: общее - 3417 сегодня - 0

Работаем с POP-сервером
28-05-2010   

Здраствуй, в этой статье я расскажу про способы получения e-mail писем и их прочтения. Для начала давайте составим интерфейс будущей программы Вот, что у меня вышло... подробнее

Кол. просмотров: общее - 3007 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects