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

       

Сценарии для объектов


ActiveX

Наиболее мощное свойство элемента управления Script, позволяющее использовать его для написания сценариев приложения — это его способность манипулировать элементами управления ActiveX. Из примера, приведенного в предыдущем параграфе, видно, как создавать объектные переменные для доступа к OLE-серверу. Если приложение использует классы, то можно получить к ним доступ посредством элемента управления VBScript. Необходимо только создать экземпляр класса (или нескольких классов) и сохранить его в элементе управления Script. После этого свойства и методы будут доступны с помощью объектной переменной, как обычные команды VBScript.

С помощью метода AddObject

можно добавить объект к элементу управления Script.

ScriptControll.AddObject Name, Object, members

Первый аргумент — Name —

это имя для доступа к классу в сценарии. Это переменная типа String. Второй аргумент - Object - действительное имя класса. Допустим, приложение предоставляет класс DisplayClass. Для добавления этого класса к элементу управления Script надо создать объектную переменную

Private Display As New DisplayClass

и воспользоваться следующим оператором

ScriptControll.AddObject "Output", Display

После выполнения этого оператора (обычно он помещается в событие Load формы) сценарий получает доступ к членам класса DisplayClass через объектную переменную Output. Если DisplayClass имеет метод Show, то к этому методу может обращаться любой сценарий.

Output.Show "some message"

' (некоторое сообщение)



(Метод Show выводит сообщение в нижний элемент управления TextBox формы.) Последний (необязательный) аргумент - members — это логическое значение, определяющее, будут ли доступны члены класса через объектную переменную. Если установить значение этого аргумента в True, то члены класса будут доступны по имени, как функции VBScnpt. Если добавить класс DisplayClass в элемент управления Script оператором

ScriptControll.AddOb]ect "Output", Display, True

то к методу Show можно обратиться из сценария без указания переменной имени объекта


Show "some message"

(некоторое сообщение)

VB6 в действии: класс Display

Одно из ограничений VBScnpt — он не поддерживает функций ввода/вывода. Так как VBScnpt — язык написания сценариев, то он по определению не поддер­живает пользовательский интерфейс. Если необходимо разработать приложение с визуальным интерфейсом, то используйте Visual Basic. Но во время проектирования, особенно на этапах отладки и тестирования, необходим способ отображения промежуточных результатов.

Форма проекта SEditor имеет окно, в котором сценарий помещает свой вывод (подобно временному окну). Эта особенность реализуется с помощью класса DisplayClass, имеющего два метода.

•  Show - для печати строки в нижнем элементе управления TextBox;

• Clear — для удаления содержимого нижнего элемента управления TextBox.

Реализация модуля класса DisplayClass требует всего нескольких строк кода.

Программа 20.9. Класс Display

Public Sub Show(message)

ScriptForm.Text2.Text = ScriptForm.Text2.Text _

& vbCrLf & message

End Sub

Public Sub Clear()

ScriptForm.Text2.Text = ""

End Sub

Для использования членов класса DisplayClass внутри сценария без регистрации Display DLL и создания объектной переменной с помощью функции CreateObject(), объект Display добавляется в элемент управления Script. Для этого необходимо добавить следующий оператор в событие Load формы.

Private Sub Form Load()

ScriptControll.AddObject "Output", Display, True

End Sub

Заметьте последний аргумент установлен в True, то есть Show и Clear доступны по имени.

Проект SEditor — простое приложение, позволяющее экспериментировать с VBScript. При разработке действительно сложных приложений, не требующих интенсивного ввода/вывода (не считая функции MsgBox() и метода Show), можно использовать и простой редактор. Однако на него нельзя рассчитывать, когда понадобится отобразить члены объектной переменной или проверить синтаксис.


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