На главную страницу
Русский English
 

RastrWin

Программа
Компонентная архитектура
Аннотация
Интерфейс
Последние изменения
Инструкция по установке
Лицензирование и защита от копирования
Права Windows для пользователя RastrWin
Свидетельство о регистрации
Архив
Курсы
RastrKZ
Rastr3
RastrMDP

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 2396361
1697
Hosts 186447
59
Visitors 305812
1539

9


Главная / Программа

Пользовательский интерфейс

Версия для печати Версия для печати

Создание диалогов в скриптах RastrWin при помощи IE.

    Появившаяся возможность подключения к обработке событий IE обеспечивает "продвинутых" пользователей RastrWin новыми возможностями в  разработке пользовательских интерфейсов скриптов. Диалоговые формы могут создаваться в виде HTML страниц и при помощи набора предоставляемых IE СОМ-интерфейсов использоваться для взаимодействия с VbScript в RastrWin. Первым опытам использования данных возможностей и посвящена эта статья. В ней на нескольких примерах разбирается процесс взаимодействия формы ввода данных пользователем на основе IE и VbScript RastrWin.
    Основным новшеством, к моменту написания статьи, явилась возможность подключения к событиям COM-объекта, что позволяет сделать работу интерактивной, когда не только скрипт RastrWin может управлять работой СОМ-объекта, но и сам объект может через функции обратного вызова управлять работой вызывающего его скрипта.

Для корректной работы скриптов необходимо перед их использованием исправить пути к файлам HTML с формой. Если будут раздражать постоянные вопросы IE по поводу запуска активного содержимого HTML страницы, то это можно отключить следующим образом (хотя это и повышает риск при заражении компьютерными вирусами использующими скрипты).

В IE->Сервис->Свойства обозревателя->Дополнительно->Разрешить запуск активного содержимого файлов на моем компьютере
для англоязычной версии(Allow active content to run in files on My Computer)
 

Загрузить примеры (22.71 Кб)

Некоторые пояснения к ключевым моментам примеров скриптов.

Пример 1. иллюстрирует использование "простой" формы ввода данных. В нем представлен процесс создания COM объекта предоставляющего интерфейсы IE, и подключающего обработчики событий IE к функциям обратного вызова скрипта.

SET g_oIE = CreateObjectEx("InternetExplorer.Application","g_IE_")

В результате объявляется переменная "g_oIE" ссылка на COM-объект IE , а так же подключаются функции обратного вызова. Второй параметр функции CreateObjectEx  -  "g_IE_" содержит текстовый префикс названия функции обратного вызова. Требуется обрабатывать событие закрытие окна IE "Quit(a)", функция обработки данного события должна иметь следующее название "Префикс функций обратного вызова"+"Название обрабатываемого события".
Для рассматриваемого события название функции обратного вызова будет следующим "g_oIE_" +"Quit(a)"= "g_IE_Quit(a)". В скрипте она имеет следующий вид:

SUB g_IE_Quit(a)
'... Выполнение некоторого кода ...
END SUB

Затем ждем пока окно с созданным диалогом не закроют, либо не нажмут на управляющую кнопку, что проверяется в следующем бесконечном цикле:

FOR i = 1 TO 2 STEP 0
'...проверка условий выхода из цикла...
NEXT

Как только получена информация о выходе из диалога (закрытии диалога, либо нажатии на управляющую кнопку), то происходит извлечение данных из элементов управления на форме. Это производится привычными операциями доступа к полям COM-объектов. Для этого требуется знать имена (Name) расположенных на форме элементов.
В примере 1 получение введенного текста в элемент управления с именем "InputCntrl" расположенным на форме "MyForm" происходит следующим образом:

Введенный текст=g_oIE.Document.MyForm.InputCntrl.Value

Так же на примере получения кода нажатой клавиши показано получение доступа к переменным скрипта загруженной HTML странички: g_oIE.Document.Script.g_ConstBtnYes (происходит обращение к константе объявленной в скрипте страницы HTML ), и вызова функций реализованных внутри HTML страницы: g_oIE.Document.Script.WhichBtnIsPressed().

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

Пример 3. Иллюстрирует динамическое формирование диалога из примера 1. Данная возможность может быть интересна по двум причинам:
а.) Отказ от использования отдельного HTML файла содержащего диалог.
б.) Возможность создания динамического диалога.

    В качестве заключения хотелось бы подвести некоторые итоги:
1. Появление возможности обработки событий существенно расширяет возможности пользовательского интерфейса скриптов RastrWin.
2. IE в качестве формы для элементов управления обеспечивает массу возможностей для создания привычного пользовательского интерфейса программы Windows при работе со скриптом RastrWin. Разработав диалог с помощью любого привычного средства создания HTML страниц, можно использовать его в работе с RastrWin.
3. Некоторые методы IE требуют, чтобы работал цикл сообщений в вызывающей программе. Посольку скрипт не содержит собственного цикла сообщений, необходим вызов функции Sleep, которая обеспечивает "прокачку" сообщений основного окна программы. Типичным примером функции, требующей применения этой техники является Quit. В случае, если эту команду выполнить без последующего использования Sleep, окно IE исчезнет только после завершения работы скрипта. Если после Quit выполнить, например, Sleep(100), окно IE будет закрыто сразу .

* Примеры разрабатывались с использованием IE 7.0 и Windows XP SP2.





Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2011