Компоненты ActiveX
05 Декабря 2009, автор: пользователь скрыл имя
Описание работы
Контрольная работа
Файлы: 1 файл
Содержание.doc
— 294.00 Кб (Скачать файл)При разработке
элементов управления реализуются
достаточно сложные механизмы создания
абстрактных интерфейсов и наследования.
Разработчики среды Delphi избавили программистов
от необходимости самостоятельно проектировать
интерфейсы к создаваемым СОМ-серверам.
Если вы хотите что-либо откорректировать
в вами же предложенном варианте, то это
можно сделать вручную, на базе уже сгенерированного
кода.
Доступ к переменным, которые используются в программе, может быть осуществлен только в том случае, если они объявлены свойствами класса, представляющего ActiveX-форму, а именно — ActiveFormX.
Для добавления переменной нужно выполнить следующую последовательность шагов, вызывая соответствующие пункты меню: Edit | Add to Interface. При этом на экране появится окно, приведенное на рис. 2
Рис. 2.
Меню добавления свойств, методов, событий
Это меню
позволяет добавить описание нового
свойства (равносильно, как и метода
или события) сначала в класс,
являющийся интерфейсом класса формы
(его наличие вызвано
Обратите внимание, что типы данных, используемые при описании свойств, не полностью совпадают с типами Object Pascal, и их перечень ограничен для совместимости с другими средствами разработки и типами, используемыми в Windows.
В табл.
1 приведем наиболее используемые типы
данных.
Таблица 1. Некоторые типы данных, используемые при обмене информацией между сервером автоматизации и клиентом
| Тип данных | Описание |
| Byte | Аналогичен типу Byte из Object Pascal |
| Currency | Аналогичен типу Currency Object Pascal |
| Double | Аналогичен типу Double Object Pascal |
| WideString | Аналогичен типу WideString WideString из Object Pascal |
При работе
с внешними переменными нельзя использовать
тип string. Вместо него, как видно из
таблицы, можно применить нуль-
- Загрузка компонентов ActiveX
Когда
пользователь загружает Web-страницу, на
которой есть ссылка на элемент управления
ActiveX, браузер проверяет настройки
безопасности компьютера, и, если они
позволяют, посылает на сервер запрос
на передачу двоичного кода скомпилированного
компонента. Сервер, получив запрос, проверяет,
доступен ли запрашиваемый файл, и если
он доступен, то передает его клиенту.
После получения кода компонента он должен
быть зарегистрирован в системе (реестре).
Об этом, опять-таки исходя из настроек
безопасности, выдается предупреждение
клиенту, с указанием информации о наличии
цифровой подписи, и при существовании
последней, информация о производителе
загруженного элемента управления. Если
пользователь разрешит, то элемент управления
регистрируется и запускается на выполнение.
При этом, как правило, его окно отображается
в заранее определенной области Web-страницы.
Кроме того, браузер передает ему параметры,
которые могли быть указаны на Web-странице,
в которую внедрен элемент управления
ActiveX. Благодаря наличию такой возможности,
серверу достаточно динамически формировать
HTML-код, с указанием значений используемых
параметров, чтобы заставить динамически
работать элемент управления ActiveX. Процесс
внедрения ActiveX-компонента осуществляется
с использованием элемента OBJECT языка HTML,
которому соответствует тег <OBJECT>, атрибуты
которого описаны в следующем разделе.
- Тег <OBJECT>языка HTML
Для того чтобы внедрить в документ HTML различные ActiveX-объекты или Java-апплеты, используется тег <OBJECT>.
Он имеет следующие основные атрибуты:
- classid — содержит уникальный 128-битный идентификатор, под которым элемент управления регистрируется в системе.
- codebase — указывает URL, где расположен компонент.
- standby — может применяться для задания текста, который будет отображаться во время загрузки компонента.
- Height — содержит высоту области, отводимой под элемент управления.
- width — содержит ширину области, отводимой под элемент управления.
- Name — применяется в контексте форм, если элемент управления служит для приема клиентских сведений с целью их последующей отправки на сервер.
К этим
атрибутам, характеризующим базовые
сведения об объекте, добавляются параметры,
которые автоматически
Для этого применяется элемент PARAM, имеющий основные атрибуты:
- Name — содержит название переменной, значение которой должно быть установлено.
- Value — устанавливаемое значение переменной.
В отличие от элемента OBJECT, где наличие конечного тега обязательно, использование последнего в элементе PARAM запрещено. Пример внедрения элемента управления ActiveX в Web-страницу приведен в листинге 1.
- Листинг 1. Пример внедрения ActiveX-элемента управления в Web-страницу:
<HTML>
<Н1> Пример внедрения ActiveX-формы в Web-страницу</Н1>
<p><OBJECT
classid="clsid:C9F21C24-DA34-
width=429
height=275
align=center
hspace=0
vspace=0>
<PARAM NAME="MyParametr" VALUE="DynamValue">
</OBJECT>
</HTML>
Устанавливая значения параметров динамически, с помощью CGI-техно-логий, можно добиться интерактивной работы таких форм не только в контексте настольного приложения, но и в режиме клиент-серверного взаимодействия.
- Автоматическое создание Web-страниц с внедряемыми компонентами
Для облегчения процесса внедрения ActiveX-элементов управления в Web-страницы, в Delphi предусмотрена возможность для автоматической генерации HTML-файлов, содержащих внедряемые компоненты. Благодаря этому, при отладке работы элементов управления теряется необходимость в ручном редактировании HTML-документов, и программист всегда имеет под рукой готовый пример внедрения. Поэтому все, что остается ему сделать, — это перенести фрагмент сгенерированного кода, описывающего элемент OBJECT, в создаваемую Web-страницу.
Прежде
чем генерировать Web-страницу, следует
заполнить несколько следующих
опций, открывающихся при выборе
пунктов меню Project | Web Deployment Options...
- arget Dir. Определяет местонахождение конечного каталога для создаваемого компонента.
- Target URL. Содержит адрес сервера и название каталога, в котором будет находиться файл компонента, т. е. адрес, откуда будет скачан файл компонента. Это значение используется для заполнения атрибута codebase элемента OBJECT Web-страницы.
- HTML Dir. Как следует из названия, здесь указывает каталог для получившегося файла HTML.
- Use CAB file compression. Включает режим сжатия файлов. Поскольку браузеры, устанавливающие компоненты, имеют встроенную поддержку CAB (сокращение от англ, cabinet) компрессии, рекомендуется всегда включать данную опцию, т. к. это позволяет существенно снизить трафик.
- Include file version number. Эта опция внедряет описание версии в файл компонента.
- Auto increment release number. Посредством данной опции, при каждой компиляции компонента, его номер версии увеличивается на единицу, а создаваемая Web-страница запрашивает обновленную версию файла. Обратите внимание, что указание параметров Target Dir и HTML Dir на работе компонентов никак не сказывается. Эти значения необходимы только для того, чтобы компилятор знал, куда нужно поместить выходные файлы. Если разработка элементов управления ведется на локальном компьютере, то при инсталляции на сервере данного компонента его нужно просто переписать в каталог, открытый на чтение для клиентов, и внести коррективы, соответствующие конечному URL компонента, в HTML-файл.
- Поддержка Java
Internet Explorer
является открытой платформой, построенной
согласно стандартам Internet. Эта платформа
позволяет Web-мастерам
- Программные компоненты (applets) Java
Microsoft Explorer 3.0 позволяет элементам Java использовать все преимущества ActiveX, более того они могут быть сами элементами ActiveX. Фактически, язык Java - один из самых подходящих для создания элементов ActiveX. В Microsoft Internet Explorer 3.0 встроен самый быстрый компилятор Java Just-in-Time (JIT).
Кроме того, Microsoft Internet Explorer 3.0 позволяет использовать языки сценариев, включая сценарии VBScript или JScript, чтобы связывать программы Java с другими элементами ActiveX.
Справочник
Java, поставляемый вместе с Visual J++ содержит
описания того, как вызывать функции
из программ Java c помощью вызовов
из программных компонентов ActiveX, написанных
на других языках (Visual Basic, Visual C++). Кроме
того, Java - идеальное средство для написания
программных компонентов ActiveX и других
компонент COM.
- Поддержка Java Internet Explorer
В отношении Java Internet Explorer реализует в себе следующее:
- Отрабатывает программы Java
- Обеспечивает работу виртуальной машины Sun Microsystems в среде Win32.
- Позволяет Web-мастерам связывать программы Java друг с другом, либо с компонентами ActiveX, используя любой язык сценариев.
- Обеспечивает встроенную безопасность Java (включая стандартные схемы безопасности и цифровую подпись).
Быстрая
компиляция программ Java при их выполнении.
Компилятор JIT Microsoft iaaniaчeaaao naiia быстрое
выполнение программ Java, это видно
из нижеследующей схемы сравнения скорости
выполнения программ Java Internet Explorer 3 и Netscape
Navigator 3.0 (Beta 5).
| Microsoft Performance Test (более высокие оценки - быстрее) | Netscape Navigator 3.0 Beta 5 | Internet Explorer 3.0 | |
| Sieve | 4263 | 4665 | |
| Loop | 7654 | 8112 | |
| Logic | 2108 | 2181 | |
| String | 36 | 132 | |
| Float | 1228 | 2661 | |
| Method | 2305 | 2903 | |
| Image | 26 | 137 | |
| Graphics | 61 | 47 | |
| Dialog | 171 | 31 | |
| Общая оценка | 1383 | 1705 | |
Эта таблица показывает, что компилятор JIT, встроенный в Internet Explorer 3.0 на 18% - 21% быстрее, чем Netscape Navigator 3.0 (Beta 5).
Независимые
компании также выполняли похожие
тесты, результат был таким же.
Например, тесты производительности
Microbenchmark и Linpack показали, что компилятор
Microsoft быстрее, чем у Netscape. В их тестах,
Internet Explorer быстрее при доступе к переменным,
немного медленнее на простых математических
операциях и намного быстрее при создании
объектов и при синхронизации их поведения.