к оглавлению   к 4GL - визуальному программированию

Сборка и импорт ActiveX-элементов

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 как объект СОМ:

  1. В меню Project выберите команду <Project> Properties (где <Ргоject> — имя Вашего проекта элемента управления).
  2. В диалоговом окне < Project > Properties щелкните на вкладке СОМ Classes.
  3. В списке классов выберите класс Вашего элемента управления.
  4. Щелкните кнопку Options.
  5. Этот пункт необязателен. В диалоговом окне Type Library Options измените имя файла библиотеки типов, созданного для определения интерфейса с элементом управления, имя библиотеки, название элемента управления, под которым он виден в среде разработки, и информацию файла справки и щелкните ОК.
  6. В диалоговом окне < Project> Properties щелкните ОК.

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:

  1. В меню Project выберите команду <Project> Properties (где <Рrоject> — это имя Вашего проекта элемента управления).
  2. В диалоговом окне < Project> Properties активизируйте вкладку Output Format.
  3. Отметьте флажок Enable Packaging.

    Теперь на вкладке должны быть разрешены другие элементы.

  4. В списке Packaging type выберите COM DLL.
  5. В поле ввода File name введите имя библиотеки (имя по умолчанию создается на основе имени проекта).
  6. В соответствующем списке выберите Outputs of type и Java Classes & Resources.
  7. Щелкните ОК.

Сборка проекта

После конфигурирования опций размещения необходимо собрать проект. Затем Visual J++ добавит в проект библиотеку типов, где определен СОМ-интерфейс для элемента управления. Библиотека типов также содержит информацию, которую реестр использует для регистрации СОМ-класса в качестве элемента управления. После генерирования библиотеки типов Visual J++ регистрирует в реестре имеющиеся в проекте СОМ-классы, используя созданный файл библиотеки типов. Зарегистрировав классы, Visual J + + помещает файлы классов проекта и библиотеку типов в COM DLL.

Чтобы собрать проект:

Регистрация COM DLL

После регистрации WFC-классов в качестве СОМ-классов и размещения их в COM DLL нужно зарегистрировать COM DLL в системном реестре. Для этого применяется программа Regsvr32.exe. Поскольку библиотека типов описывает СОМ-классы в проекте как элемент управления, то Regsvr32 регистрирует COM DLL как элемент управления ActiveX. Когда COM DLL зарегистрирована, другие приложения могут видеть Ваш WFC-элемент в списке ActiveX-элементов, имеющихся в системе.

Чтобы зарегистрировать COM DLL:

  1. Щелкните на кнопке Start (Пуск) и выберите команду Run (Выполнить).
  2. В поле ввода Open (Открыть) введите: Regsvr32.exe <DLL path and filename> где <DLL path and filename> — это путь и имя файла DLL с элементом управления. Для данного Примера введите: Regsvr32 C:\Projectl\Projectl.dll
  3. Щелкните ОК.

Если получите сообщение, что регистрация не удалась, то проверьте правильность пути к файлу и наличие самого файла.

Тестирование элемента управления в среде Microsoft Visual Basic

Чтобы протестировать элемент управления ActiveX, добавьте его в приложение или в программный инструмент, который поддерживает ActiveX. Например, используйте для этого Microsoft Visual Basic версии 5.0 или более поздней.

Чтобы добавить ActiveX-элемент на основе WFC в форму Visual Basic:

  1. Запустите Visual Basic.
  2. Из меню File выберите New Project.
  3. В диалоговом окне New Project щелкните значок Standard EXE и затем — ОК.
  4. Щелкните правой кнопкой на Toolbox и затем — Components.
  5. В диалоговом окне Components выберите свой элемент управления и затем щелкните ОК.

    Для данного примера укажите элемент управления Projectl.

  6. В Toolbox дважды щелкните свой элемент управления для добавления его в форму.

Элемент будет помещен в центр формы. 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:

  1. Щелкните кнопку Start (Пуск) и выберите команду Run (Выполнить).
  2. В поле ввода Open (Открыть) введите: Regsvr32.exe <DLL path and filename>где <DLL path and filename> — это путь и имя файла DLL с элементом управления. Для данного примера введите: Regsvr32 C:\Windows\System\AMOVIE.OCX
  3. Щелкните ОК,

Если получите сообщение, что регистрация не удалась, проверьте правильность пути к файлу и наличие самого файла.

Создание WFC-проекта

Когда импортируется элемент управления ActiveX, Visual J + + создает в проекте каталоги пакетов и добавляет в них классы-оболочки (class wrappers), используемые для доступа к ActiveX-элементу в этих каталогах. Следовательно, для импорта такого элемента нужно иметь доступный WFC-проект.

Чтобы создать WFC-npoект:

  1. Из меню File выберите New Project.
  2. На вкладке New раскройте папку Visual J++ Projects, щелкните Applications и затем — значок Windows Application.
  3. В поле ввода Name введите имя проекта.
  4. В поле ввода Location укажите путь к каталогу, в котором будет храниться проект, или щелкните Browse, чтобы перейти к соответствующей папке.
  5. Щелкните Open.

    В Project Explorer появится свернутое изображение проекта. (Если Project Explorer не виден, то выберите команду Project Explorer из меню View.)

  6. В Project Explorer раскройте узел проекта.

    В проект добавится файл с именем по умолчанию Forml.java.

  7. Чтобы открыть форму в Forms Designer, дважды щелкните на Forml.java в Project Explorer.

Импорт элемента управления ActiveX

После создания проекта в него можно импортировать элемент управления ActiveX. Для выбора ActiveX-элемента из списка элементов, установленных в системе, используйте диалоговое окно Customize Toolbox.

Примечание После добавления в Toolbox ActiveX-элемента он будет видим для всех проектов, пока его не удалят.

Чтобы импортировать элемент управления ActiveX:

  1. В Toolbox щелкните вкладку General. (Если Toolbox не отображается, выберите команду Toolbox из меню View.)
  2. Щелкните правой кнопкой мыши Toolbox и выберите команду Customize Toolbox.
  3. В диалоговом окне Customize Toolbox щелкните вкладку ActiveX Controls.
  4. В списке элементов управления ActiveX выберите тот или те, которые хотите импортировать.

    Для данного примера укажите ActiveMovie Control Object.

  5. Щелкните ОК.

Выбранные элементы управления добавятся на Toolbox.

Добавление элемента управления на форму

При добавлении ActiveX-элемента на форму Visual J + + создает один или несколько пакетов в каталоге проекта и добавляет для элемента управления классы-оболочки. Последние используются в Visual J+ + для доступа к классам и компонентам ActiveX-элемента. Если импортированный элемент управления находится в файле, который содержит несколько ActiveX-элементов, то Visual J++ предоставит классы-оболочки для них всех, но добавит в Toolbox только выбранный элемент управления.

Чтобы добавить элемент управления ActiveX на форму:

Установка свойств элемента управления

После добавления на форму ActiveX-элемента задайте его свойства и создайте обработчики событий, используя окно Properties.

Чтобы установить свойства для элемента управления ActiveMovie:

  1. В Forms Designer выберите элемент управления ActiveMovie.
  2. В окне Properties выберите свойство filename.
  3. Введите путь и имя файла .avi, который будет показан в элементе управления.

    - или —

    Щелкните кнопку с многоточием в разделе значений свойства filename, чтобы вывести диалоговое окно для поиска файла на компьютере.

Сборка проекта

После добавления ActiveX-элемента на форму и установки его свойств соберите проект и запустите его для проверки функциональных возможностей.

Чтобы собрать и запустить форму:

  1. В меню Build выберите команду Build.

    Если появятся какие-либо сообщения об ошибках компиляции, исправьте ошибки и заново соберите проект.

  2. Чтобы запустить форму, выберите Start из меню Debug.
  3. Когда форма появится на экране, щелкните кнопку воспроизведения на элементе управления.

Будет показан фильм, заданный в свойстве filename.

к оглавлению   к 4GL - визуальному программированию

Знаете ли Вы, в чем фокус эксперимента Майкельсона?

Эксперимент А. Майкельсона, Майкельсона - Морли - действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.

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

В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.

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

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution