ActiveX — это технология, созданная на основе модели компонентных объектов (Component
Object Model, COM). Помимо создания WFC-ком-понентов, Visual J+ + используют
и для создания и импорта ActiveX-элементов. Поскольку ActiveX строится на основе
СОМ, встраивать ActiveX в программу так же легко, как и другие СОМ-объекты.
Можно создавать элементы управления для применения в других средах разработки,
например в Microsoft Visual Basic или Microsoft Visual C++, и для расширения
возможностей HTML-страниц. Более того, можно импортировать ActiveX-элементы
сторонних поставщиков для улучшения своих WFC-приложений. Из этой главы Вы узнаете:
Создание
элементов управления ActiveX
Средствами
модели WFC-компонентов можно создать элементы управления ActiveX, которые будут
использоваться, в WFC-приложениях или в других средах разработки, поддерживающих
ActiveX. Для создания ActiveX-элемента из WFC-элемента зарегистрируйте класс
WFC-элемента в качестве класса СОМ. После этого поместите файл класса в COM
DLL и зарегистрируйте ее в реестре как ActiveX-элемент. Элемент управления,
зарегистрированный как ActiveX-элемент, доступен для ActiveX-клиента.
В данном
примере использован WFC-элемент, описанный в разделе «Создание элемента
управления» главы 1 «Создание проектов». Если он еще не создан,
то сделайте это, а затем следуйте процедурам, изложенным в этом разделе. Далее
Вы узнаете:
Примечание
Для последующих операций необходим открытый в Visual J++ проект компонента
WFC.
Определение
элемента управления WFC как СОМ-объекта
Для получения
доступа к элементу управления из других клиентов ActiveX нужно определить его
как объект СОМ. Чтобы представить класс в виде объекта СОМ, поместите перед
определением класса тэг комментария @com.register. Visual J++ позволяет автоматически
генерировать такой тэг для конструируемых Вами классов.
Примечание
Если проект элемента управления создан с использованием шаблона Control,
то он уже содержит тэг комментария для регистрации в качестве объекта СОМ.
Вам нужно только удалить две косые черты «//» в начале комментария.
Чтобы
определить компонент WFC как объект СОМ:
Visual J++
добавит поверх определения класса тэг комментария для регистрации класса в качестве
объекта СОМ.
Примечание
Если не нужно определять несколько классов в качестве СОМ, то класс
СОМ можно определить в диалоговом окне Class Properties. Для вывода этого
диалогового окна щелкните правой кнопкой мыши в Class Outline на имени класса
и выберите команду меню Class Properties. В появившемся диалоговом окне
отметьте флажок COM Class.
Размещение
элемента управления в COM DLL
После того
как элемент управления WFC определен в качестве CQM-объекта, обязательно поместите
файлы класса элемента управления в файл COM DLL. Это необходимо, чтобы элемент
был доступен как ActiveX-элемент. COM DLL предоставляет интерфейс, используемый
клиентами ActiveX для доступа к элементу управления и его компонентам.
Примечание
Для распространения ActiveX-элементов по Интернету можно разместить их в САВ-файле,
а не в COM DLL.
Чтобы
создать элемент управления как COM DLL:
Теперь на вкладке
должны быть разрешены другие элементы.
После конфигурирования
опций размещения необходимо собрать проект. Затем Visual J++ добавит в проект
библиотеку типов, где определен СОМ-интерфейс для элемента управления. Библиотека
типов также содержит информацию, которую реестр использует для регистрации СОМ-класса
в качестве элемента управления. После генерирования библиотеки типов Visual
J++ регистрирует в реестре имеющиеся в проекте СОМ-классы, используя созданный
файл библиотеки типов. Зарегистрировав классы, Visual J + + помещает файлы классов
проекта и библиотеку типов в COM DLL.
Чтобы
собрать проект:
После регистрации
WFC-классов в качестве СОМ-классов и размещения их в COM DLL нужно зарегистрировать
COM DLL в системном реестре. Для этого применяется программа Regsvr32.exe. Поскольку
библиотека типов описывает СОМ-классы в проекте как элемент управления, то Regsvr32
регистрирует COM DLL как элемент управления ActiveX. Когда COM DLL зарегистрирована,
другие приложения могут видеть Ваш WFC-элемент в списке ActiveX-элементов, имеющихся
в системе.
Чтобы
зарегистрировать COM DLL:
Если получите
сообщение, что регистрация не удалась, то проверьте правильность пути к файлу
и наличие самого файла.
Тестирование
элемента управления в среде Microsoft Visual Basic
Чтобы протестировать
элемент управления ActiveX, добавьте его в приложение или в программный инструмент,
который поддерживает ActiveX. Например, используйте для этого Microsoft Visual
Basic версии 5.0 или более поздней.
Чтобы
добавить ActiveX-элемент на основе WFC в форму Visual Basic:
Для данного примера
укажите элемент управления Projectl.
Элемент будет помещен
в центр формы. 3. Нажмите F5 для запуска проекта.
На экране
появится форма с элементом управления. Если Вы работаете с элементом управления,
который описан в разделе «Создание элемента управления» главы 1
«Создание проектов», то можете воспользоваться горизонтальной полосой
прокрутки. Текст в элементе управления будет меняться в зависимости от положения
ползунка. Информацию об импорте ActiveX-элемента в WFC-приложение см. в следующем
разделе «Импорт элементов управления ActiveX».
Импорт
элементов управления ActiveX
Элементы
управления ActiveX расширяют возможности приложений на основе WFC. Сторонние
поставщики предлагают ряд ActiveX-элементов, реализующих, например, кнопки произвольной
формы, телефонные технологии, диаграммы, графики и электронные таблицы. Visual
J + + импортирует элементы управления ActiveX, используя процесс, напоминающий
импорт СОМ-объектов.
В данном
примере Вы импортируете элемент управления Microsoft ActiveMovie, который устанавливается
вместе с Microsoft Internet Explorer версии 4.0. Вы узнаете:
Регистрация
элемента управления
Чтобы элемент
управления ActiveX был доступен в Visual J++, его нужно зарегистрировать в системном
реестре.
Примечание
В данном примере не нужно регистрировать элемент
управления ActiveMovie, так как он регистрируется при установке Internet Explorer.
Чтобы
зарегистрировать элемент управления ActiveX:
Если получите
сообщение, что регистрация не удалась, проверьте правильность пути к файлу и
наличие самого файла.
Когда импортируется
элемент управления ActiveX, Visual J + + создает в проекте каталоги пакетов
и добавляет в них классы-оболочки (class wrappers), используемые для доступа
к ActiveX-элементу в этих каталогах. Следовательно, для импорта такого элемента
нужно иметь доступный WFC-проект.
Чтобы
создать WFC-npoект:
В Project Explorer
появится свернутое изображение проекта. (Если Project Explorer не виден,
то выберите команду Project Explorer из меню View.)
В проект добавится
файл с именем по умолчанию Forml.java.
Импорт
элемента управления ActiveX
После создания
проекта в него можно импортировать элемент управления ActiveX. Для выбора ActiveX-элемента
из списка элементов, установленных в системе, используйте диалоговое окно Customize
Toolbox.
Примечание
После добавления в Toolbox ActiveX-элемента он будет видим для всех
проектов, пока его не удалят.
Чтобы
импортировать элемент управления ActiveX:
Для данного примера
укажите ActiveMovie Control Object.
Выбранные
элементы управления добавятся на Toolbox.
Добавление
элемента управления на форму
При добавлении
ActiveX-элемента на форму Visual J + + создает один или несколько пакетов в
каталоге проекта и добавляет для элемента управления классы-оболочки. Последние
используются в Visual J+ + для доступа к классам и компонентам ActiveX-элемента.
Если импортированный элемент управления находится в файле, который содержит
несколько ActiveX-элементов, то Visual J++ предоставит классы-оболочки для них
всех, но добавит в Toolbox только выбранный элемент управления.
Чтобы
добавить элемент управления ActiveX на форму:
Установка
свойств элемента управления
После добавления
на форму ActiveX-элемента задайте его свойства и создайте обработчики событий,
используя окно Properties.
Чтобы
установить свойства для элемента управления ActiveMovie:
- или —
Щелкните кнопку с
многоточием в разделе значений свойства filename, чтобы вывести диалоговое
окно для поиска файла на компьютере.
После добавления
ActiveX-элемента на форму и установки его свойств соберите проект и запустите
его для проверки функциональных возможностей.
Чтобы
собрать и запустить форму:
Если появятся какие-либо
сообщения об ошибках компиляции, исправьте ошибки и заново соберите проект.
Будет показан фильм, заданный в свойстве filename.
Когда тот или иной физик использует понятие "физический вакуум", он либо не понимает абсурдности этого термина, либо лукавит, являясь скрытым или явным приверженцем релятивистской идеологии.
Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.
Для защиты релятивизма Поль Дирак ввел афизическое и алогичное понятие отрицательной энергии, а затем и существование "моря" двух компенсирующих друг друга энергий в вакууме - положительной и отрицательной, а также "моря" компенсирующих друг друга частиц - виртуальных (то есть кажущихся) электронов и позитронов в вакууме.
Однако такая постановка является внутренне противоречивой (виртуальные частицы ненаблюдаемы и их по произволу можно считать в одном случае отсутствующими, а в другом - присутствующими) и противоречащей релятивизму (то есть отрицанию эфира, так как при наличии таких частиц в вакууме релятивизм уже просто невозможен). Подробнее читайте в FAQ по эфирной физике.