Visual Basic 6. Руководство разработчика

Взаимодействие с компонентами


ActiveX

Функциональные возможности активных серверных страниц не ограничиваются средствами VBScript и встроенными объектами, описанными в этой главе. Метод CreateObject объекта Server в ваших серверных страницах выполняет ту же роль, что и функция Create0bject() в VB-приложениях. Он позволяет использовать возможности как стандартных OLE приложений-серверов, так и пользовательских компонентов ActiveX (ActiveX DLL). Очень важно, что возможно взаимодействие и с компонентами ActiveX EXE, но при этом может возникнуть ряд проблем. ActiveX DLL являются активными (in-process) компонентами - они загружаются вместе с вызывающим приложением и становятся его частью. Компоненты ActiveX EXE являются пассивными (out-of-process) — независимо от числа вызвавших приложений в оперативной памяти всегда присутствует только один экземпляр компонента. Это может привести к трудноразрешимым проблемам. Например, когда одно приложение присваивает значение глобальной переменной, а другое - изменяет это значение. Поэтому чрезвычайно сложно разработать компонент ActiveX EXE, работающий корректно в любой ситуации.

В гл. 15 мы разработали компонент StringClass (проект NumStr на компакт-диске). В качестве напоминания в табл. 22.2 приведено описание трех методов компо­нента StringClass для манипулирования числами и строками.

Таблица 22.2. Методы компонента StringClass

Метод

Действие

Number2String(number)

LowerCaps(string)



Integer2Binary(number)

Преобразует переданный ему числовой аргумент в строку и возвращает ее. Если вызвать метод с числом 3462 в качестве аргумента, то возвращается значение "три тысячи четыреста шестьдесят два"

Преобразует строку аргумента в нижний регистр (первые буквы всех слов становятся прописными) и возвращает новую строку. Если передать этому методу в качестве аргумента строку "MASTERING visual basic", то будет возвращена строка "Mastering Visual Basic"

Преобразует целочисленный аргумент в двоичное число и возвращает двоичное значение в виде строки. Если передать ему в качестве аргумента число 312, то результатом будет строка "000100111000" (без кавычек)

<
Чтобы использовать компонент StringClass в ASP-файле, сначала необходимо создать DLL-файл и зарегистрировать его в вашей системе. Процесс создания и регистрации DLL описан в гл. 15.

Для доступа к методам компонента StringClass необходимо создать объектную переменную с помощью следующего оператора.

<%

Set STR=Server.CreateObject ("NumStrings.StringClass")

%>

Переменная

STR служит шлюзом для методов, предоставляемых классом StringClass. Преобразовать число в строку можно следующим образом.

<% STR.Nuniber2String(4325) %>

На рис. 22.11 показана страница NUMSTR.ASP, которая использует метод Number2String компонента StringClass для отображения чисел в виде строк. Обратите внимание: метод Number2String возвращает строку в нижнем регистре. Для перевода первых букв всех слов в верхний регистр воспользуйтесь методом LowerCaps. Можно объединить вызовы обоих методов в одно выражение.

<% STR.LowerCaps(STR.Number2String(4325)) %>



Рис. 22.11. Страница NUMSTR.ASP взаимодействует с компонентом StringClass, расположенным на сервере, для форматирования чисел

Полный исходный текст файла NUMSTR.ASP находится в папке этой главы на компакт-диске.

Для тестирования этого файла необходимо скопировать его с компакт-диска в корневую папку Web-сервера и открыть его с помощью Internet Explorer, задав URL файла в поле Address броузера (127.0.0.1/numstr.asp). Для регистрации компонента StringClass необходимо создать DLL, а затем зарегистрировать ее с помощью утилиты REGSVR32. Откройте проект NumStr с помощью Visual Basic и выберите команду Build StringClass.dll меню File. После того как DLL-файл создан, закройте Visual Basic, откройте окно DOS и перейдите в папку с DLL-файлом. Затем напечатайте следующую команду.

С:\WINDOWS\SYSTEM\REGSVR32 STRINGCLASS.DLL

Более подробно о регистрации компонентов ActiveX можно прочесть в параграфе "Регистрация компонентов ActiveX " гл. 15.

Как только компонент зарегистрирован, любой сценарий, выполняемый на вашем сервере, может обращаться к его методам, как к методам системных компонентов. Так вы можете зарегистрировать все компоненты, разработанные в гл. 15. Обратите внимание: перед использованием эти компоненты загружать не нужно.


Содержание раздела