На этом шаге мы рассмотрим создание активных форм.
Активная форма - это элемент управления ActiveX, содержащий несколько VCL-компонентов. Возможность
создания таких элементов управления позволяет существенно расширить круг доступных для элементов ActiveX функциональных возможностей.
Создание такого ActiveX происходит примерно так же, как и разработка обычного приложения.
Приведем простейший пример такого элемента управления. Для его разработки следует выбрать со страницы ActiveX репозитария объект ActiveForm (Active Форма), ответить на вопросы об имени компонента, после чего в дизайнере форм получим пустую форму - заготовку будущего ActiveX. Добавим на эту форму компоненты TCheckBox, TButton, TImage и TOpenPictureDialog, заменив некоторые из их свойств.
Рис.1. Активная форма на этапе проектирования
Создадим обработчики событий, связанных со щелчками мыши на компонентах TCheckBox и TButton:
procedure TActiveFormX.Button1Click(Sender: TObject); begin if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; procedure TActiveFormX. CheckBox1Click(Sender: TObject); begin Image1.Stretch:=CheckBox1.Checked; end;
Теперь можно скомпилировать приложение, зарегистрировать созданный ActiveX и протестировать его указанным на шаге 2 способом.
Можно также протестировать созданный ActiveX с помощью отображения его в Internet Explorer. Для этой цели достаточно выбрать пункт меню Project | Web Deployment Options (Проект | Опции Размещения в Сети) и на странице Project (Проект) в полях Target dir (Целевой каталог), Target URL (Целевой URL), HTML dir (Каталог HTML) этого диалога указать имя какого-нибудь локального каталога.
Рис.2. Настройка опций на вкладке Project (Проект)
Затем можно выбрать опцию Project | Web Deploy (Проект | Размещение в Сети) и по окончании работы Web Deployment Wizard (Мастер Размещения в Сети) открыть в Internet Explorer автоматически сгенерированную Delphi HTML-страницу с именем, совпадающим с именем созданного проекта (рисунок 3).
Рис.3. Тестирование формы в Internet Explorer
Созданный компонент ActiveX можно взять здесь (545 Кб).
Отметим, что для успешного отображения ActiveX в браузере требуется Microsoft Internet Explorer версии 3.0 и выше, при этом настройки уровня безопасности должны позволять загрузку и выполнение элементов ActiveX, расположенных в Intranet-зоне, что существенно отличается от установок, принятых по умолчанию.
Отметим также, что сгенерированную автоматически страницу можно в дальнейшем отредактировать с помощью любого HTML-редактора (или даже любого текстового редактора).
При поставке ActiveX через Web процедура аналогична описанной, но вместо локальных каталогов в строке URL следует указать Internet-адрес Web-сервера.
Нужно обратить внимание на следующее: Target dir (Целевой каталог) и Target URL (Целевой URL) представляют собой путь к одной и той же директории, но в первом случае путь задается с точки зрения владельца локального компьютера, а во втором - с точки зрения пользователя-гостя, обращающегося к Web-серверу через Internet. Конкретное соответствие определяется в настройках Web-сервера, и перед началом заполнения данного диалога необходимо уточнить его настройки. Директория, в которую помещают *.осх или *.cab-файл, должна быть доступна для чтения гостям. В частности, при установке Web-серверов Microsoft такой директорией по умолчанию считается C:\InetPub\WWWRoot. Соответственно URL, который определен для каждого Web-сервера, и указывает на эту директорию - http://localhost, если тестирование будет проводиться на локальном компьютере.
Помимо этого, следует обратить внимание на дополнительные пакеты или другие файлы, которые надо включить в поставку, если опции проекта таковы, что требуют использования каких-либо дополнительных библиотек. Разделение ActiveX на несколько файлов и выделение отдельных пакетов может быть использовано для того, чтобы уменьшить в целом время загрузки ActiveX через Internet, например в случае предстоящей необходимости обновления версии ActiveX или при поставке нескольких разных ActiveX. Тогда часть пакетов, содержащих общую для всех ActiveX или для всех версий данного ActiveX часть скомпилированного кода, может быть установлена один раз, а далее производится поставка лишь небольшой содержательной части элемента ActiveX. Впрочем, не возбраняется создавать ActiveX и в виде одного файла. Отметим также, что при установке опции Use CAB File compression (Использовать сжатие CAB) можно собрать используемые файлы в один файл с расширением *.cab, фактически представляющий собой архив, что также уменьшает примерно в два раза время загрузки файлов через Internet.
Следует отметить, что в активных формах можно использовать практически все компоненты Delphi, кроме TMainMenu. Возможна также динамическая генерация дополнительных форм на этапе выполнения, при этом дополнительные формы уже не будут содержаться в контейнере, а будут представлять собой обычные формы Windows (и естественно, могут содержать в том числе и TMainMenu).
Отметим также, что, редактируя библиотеку типов, можно к созданным ActiveX добавлять свойства и методы и затем описывать их реализацию в соответствующем модуле.
На следующем шаге мы рассмотрим использование собственных диалогов на этапе разработки элементов управления ActiveX.