Главная » C++, C++ Builder » Добавление собственных управляющих элементов ActiveX CBuilder

0

 

Одна из самых приятных возможностей среды разработки CBuilder  —  это  возможность добавления в систему новых компонентов и управляющих элементов. После добавления компонентов в палитру они ведут себя так, как будто поставлялись с CBuilder.  Такая расширяемость гарантирует, что ваша система не будет устаревать: вы просто добавляете новые компоненты, появляющиеся в мире. Другие системы также предоставляют похожую расширяемость, но вовсе не так легко (кроме Delphi), как CBuilder.

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

В этом примере мы собираемся добавить Internet Explorer ActiveX-элемент (называется он WebBrowser). Компонент автоматически устанавливается на ваш компьютер, если вы используете Internet Explorer, а если вы его не используете, то у вас есть два варианта: или взять бесплатную

копию с Web-сайта Microsoft (http://www.microsoft.com), или просто использовать другой управляющий элемент ActiveX вместо данного. Процедура установки нового управляющего элемента одинакова, независимо от того, что за элемент вы ставите, хотя получающиеся файлы будут иметь разные имена.

Первый шаг — вызвать окно диалога Install Components (установка компонентов) (рис. 6.1). Выберите команду меню Component|Install для вызова окна диалога, которое позволит вам модифицировать компоненты, установленные в системе. Из этого окна вы можете добавлять или удалять обычные компоненты CBuilder/Delphi, равно как и управляющие элементы ActiveX.

Рис. 6.1. Окно диалога установки компонентов в CBuilder

В окне диалога установки компонентов с правой стороны окна вы увидите кнопку «ActiveX». Нажав ее, вы вызовете окно диалога Import OLE Control (импорт управляющего элемента OLE). Этот диалог мы будем использовать для выбора управляющего элемента ActiveX, установленного в систему. Чтобы можно было использовать этот диалог, ваш компонент (управляющий элемент ActiveX) должен быть зарегистрирован в системе. Обычно это  делается  само собой, если компонент используется в каком-либо приложении, так как обычно программа установки приложения регистрирует компонент (в процессе установки). Если по какой-либо причине он еще не зарегистрирован, то вы можете зарегистрировать его или с помощью приложения Test Container (которое можно найти во многих средах разработки), или используя приложение regsvr32.exe, входящее в комплект Windows 95/NT. Если вы сами разработали управляющий элемент на другом компьютере, вам нужно зарегистрировать его перед использованием в приложении на другой системе, включая CBuilder.

В любом случае, на данный момент  будем считать, что вы установили управляющий элемент ActiveX для нашего теста (Internet Explorer ActiveX-элемент) и что все  корректно зарегистрировано. Тогда вы сможете выбрать Microsoft Internet Controls в списке Registered controls (зарегистрированные управляющие элементы) и увидеть, как изменятся некоторые поля в диалоге. Во-первых, Unit file name (имя файла с модулем) изменится на SHDOCVW.PAS (все компоненты генерируются в

виде модуля на Pascal для совместимости с Delphi). Поле Palette page (страница палитры компонентов) изменится на ActiveX, а поле Class names (имена классов) — на TWebBrowser.

Рис. 6.2. Окно диалога Import OLE Control

Вообще говоря, вы можете менять все эти поля, но лучше оставить их как есть. Исключения составляют имя страницы в палитре, на которую вы хотите положить этот компонент, и имена классов, которые стоит поменять так, чтобы  они лучше отражали суть компонента. Так что  в нашем случае мы просто оставляем все как было. Нажмите на кнопку OK для  закрытия  окна диалога Import OLE Control. Таким образом, вы вернетесь в окно диалога Install Components. Нажмите на OK в этом диалоге: мы закончили вносить изменения в  компоненты  в  системе. Вместо нажатия на OK, если хотите, вы можете добавить еще компонент или удалить существующий.

Как только вы закрываете окно установки компонента, CBuilder начинает действовать. В первую очередь вы увидите, что запустится компилятор и CBuilder перекомпилирует библиотеку компонентов. Файлы модулей для добавленных вами компонентов (в нашем случае SHDOCVW.PAS) скомпилируются, и полученная библиотека будет собрана. Когда процесс компиляции и сборки закончится, вы увидите знакомое окно диалога, в котором будет отражено состояние сборки Done: Make («сборка закончена»).

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

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

Замечание

Небольшое предупреждение. Хотя управляющие элементы ActiveX и используются точно так же, как и любой другой компонент в CBuilder, задержка прорисовки для управляющих элементов ActiveX при отбуксировке их на форму значительно больше, чем для обычных компонентов. Дело в том, что создание управляющего элемента ActiveX требует на порядок больше времени, чем создание нового компонента VCL.

Источник: Теллес М. – Borland C++ Builder. Библиотека программиста – 1998

По теме:

  • Комментарии