рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Regsvr32.exe ИмяФайла

Regsvr32.exe ИмяФайла - раздел Строительство, Пример создания ActiveX форм Можно Переходить К Тестированию. В Качестве Тестирования Я Создам Html Страни...

Можно переходить к тестированию. В качестве тестирования я создам HTML страничку и попробую загрузить форму с помощью IE. Для этого выбери Web Deployment Option из меню Project, и перед тобой откроется окно публикации компонента в сети Internet, как на рис. 22.6.4.

Рассмотрим каждый параметр в отдельности:

Target Dir -директория, в которую попадёт скомпилированный файл OCX.

Target URL -Адрес в инете, откуда будет загружен OCX. Когда пользователь будет загружать страничку, то компонент будет скачан именно с этого адреса.

HTML Dir -директория, в которую попадёт шаблон HTML-файла, который потом можно использовать для публикации.

Use CAB compression -упаковать ocx файл в CAB архив. Необходимо указывать только если объект создавался именно для публикации в сети. В этом случае компонент сжимается за счёт чего уменьшается скорость его загрузки по сети.

Auto increment release number – автоматически увеличивать номер релиза.

Заполни поля и нажми ОК. Заполнение полей Target Dir, Target URL и HTML Dir является обязательным. Я советую тебе выбирать Target Dir и HTML Dir отличную от той в которой лежит твой проект. Эти директории нужно указать реальные, а вот адрес интернете можно указывать любой. Если компонент уже зарегистрирован в системе, то этот адрес не понадобиться. Браузер будет обращаться к этому адресу только если в системе не найден указанный компонент. В нашем случае мы уже произвели регистрацию в системе и можем использовать компонент по своему усмотрению.

Теперь выбирай пункт меню Web Deploy и Delphi и Delphi создаст необходимый для тестирования HTML файл. Запусти этот файл и ты увидишь окно, как на рисунке 22.6.5. Как видишь, достаточно просто создать маленькое приложение, которое сможет работать в сети Internet прямо внутри браузера IE. Только учти, что если ты собираешься выкладывать свои файлы в интернете, то не каждый пользователь сможет воспользоваться услугами твоей программы. В защите ActiveX очень много дыр, поэтому эти компоненты по умолчанию не могут загружаться из сети на компьютеры пользователей. Чтобы пользователь смог увидеть твою программу, он должен понизить уровень безопасности в своём IE до минимума и разрешить загрузку ActiveX по сети.

Благодаря такой плохой защищённости, компоненты ActiveX не получили должного распространения. Никто не хочет понижать безопасность своего компьютера и надёяться на добропорядочных программистов. Таких программистов не так уж и много, поэтому лучше лишний раз перестраховаться и не включать ActiveX.

И всё же, в локальных сетях ActiveX используют достаточно много, особенно в России. У таких форм достаточно много преимуществ и позволяют решить много проблем:

1. Централизованное обновления. Когда программист внёс в своё продукт обновление, то он должен установить его на все машины, работающие с его программой. А если таких компьютеров много? Можно пытаться известить своих пользователей по почте или каким-либо другим способом. А если неизвестны все пользователи? Вот тут уже задача усложняется. В данном случае достаточно только изменить ocx файл и закачать его на сервер, откуда IE качает файл (параметр Target URL окна Web Deployment Option). При следующем запуске IE сам загрузит обновлённый файл и установит его.

Есть ещё один способ протестировать наш пример. Для этого выбери Import ActiveX Control… из меню “Component” и ты увидишь окно, как на рис 22.4.6. Да, именно через это окно я показывал, как установить движок IE. Найди в верхнем списке имя твоего компонента и нажми Install. Delphi установить этот компонент и его иконка появится на закладке ActiveX палитры компонентов. Теперь ты сможешь устанавливать его на любую форму и вообще, использовать как простой компонент.

На компакт диске, в директорииПримерыГлава 22ActiveFormты можешь увидеть пример этой программы.

 

22.7. Создание ActiveX компонентов

ы уже наверно убедился на практике, что ActiveX -это достаточно сложная для понимания и разработки технология. Она является продолжением развития OLE, которая была пополнена технологией COM и переименована в

более ёмкое название -ActiveX. Под этим термином скрывается несколько самостоятельных технологий:

1. 1. Формы ActiveForm - мы с ними познакомились в самом начале.

2. 2. Элементы управления

3. 3. Библиотеки

4. 4. Серверы автоматизации

 

5. Страницы свойств Всё это объединяется под одним термином ActiveX. С первым мы уже познакомились, теперь предстоит познакомиться со вторым – элементами управления.

Для разработки элементов управления на основе ActiveX нужно иметь достаточно много знаний и навыков. Фирма Borland упростила эту технологию как для понимания, так и для разработки создав свою надстройку - Delphi ActiveX (часто сокращается до DAX). Благодаря DAX ты можешь любой компонент Delphi превратить компонент ActiveX и использовать его в любой другой среде разработки. Вот именно эти мы и займёмся. Сейчас я покажу, как создать компонент ActiveX с использованием Delphi и надстройки DAX. Хотя о присутствии DAX ты можешь и не знать.

Выбирай меню File->New->Other и на закладке ActiveX выбирай ActiveX Control. По нажатию кнопки ОК. Перед тобой должно открыться окно ActiveX Control Wizard, как на рис 22.7.1.

Давай рассмотрим содержимое окна ActiveX Control Wizard :

VCL Class Name -Имя компонента, который мы хотим превратить в ActiveX. Выбери из списка TPanel.

New ActiveX Name -Имя ActiveX компонента (оставь по умолчанию).

Implementation Unit -Имя модуля (оставь по умолчанию)

Project Name -Имя проекта (оставь по умолчанию)

Threading Model -Модель потока.

Make Control Licensed -Лицензия компонента. Включай только если захочешь продавать свой компонент.

Include Version Information -Включить информацию о версии

Include About Box -добавить окно "О программе"

После нажатия кнопки "ОК", Delphi создаст шаблон для нового твоего компонента, в которой уже готовы к использованию все методы и свойства компонента TPanel. Весь исходный код реализующий компонент будет находится в модуле PanelImpl1.pas. Перейди в него с помощью менеджера проектов и посмотри на содержимое.

Здесь полно процедур и функций начинающихся словом Get_ или Set_. Зачем они нужны? В ActiveX нет свойств или переменных, к которым можно было бы обращаться напрямую, как мы это делали с Delphi компонентом. Весь доступ к свойствам происходит через процедуры или функции, поэтому, чтобы прочитать заголовок панели, Delphi создал функцию Get_Caption, а чтобы изменить заголовок на новый -Set_Caption(const Value: WideString). Раньше для этого нам достаточно было просто обратиться к свойству Caption компонента панели, здесь такой трюк не проходит. Немного позже мы напишем собственную реализацию изменения заголовка.

Вся информация о методах компонента находится в библиотеке типов. Чтобы её увидеть выбери пункт Type Library из меню View (рис 22.7.2).

Когда ты выбираешь какой-нибудь элемент библиотеки, в правой стороне окна

появляется несколько закладок. На закладке Attributes ты можешь видеть: Name -имя объекта GUID -уникальный номер в библиотеке (менять не советую) Version -версия LCID -Идентификатор языка Help String -Краткое описание Help File -Имя Help файла связанного с объектом Help Context -Идентификатор контекста справки

Вот некоторые из флагов, которые ты тоже можешь тут увидеть:
None -Флаги отсутствуют.
Restricted -Запретить использование библиотеки в средах программирования

 

макросов. Control -В библиотеке находится компонент ActiveX. Hidden -Библиотека скрыта от пользователей. DispInterface -доступ к свойствам и методам производится только через интерфейс

IDispatch.

Nonextensible -Если выделен, то реализация интерфейса IDispatch (основной интерфейс ActiveX) будет включать только те свойства и методы, которые показаны в реализации.

Dual -Методы и свойства интерфейса передаются и через IDispatch, и таблицу

виртуальных методов. OLE Automation -используются только совместимые с автоматизацией типы данных. Source -указывает, что возвращаемое значение является типа VARIANT,

являющееся источником событий. Bindable -свойство поддерживает связывание данных Request Edit -свойство поддерживает сообщение OnRequestEdit

Небольшое отступление: Программа-клиент может получить доступ к интерфейсам (объектам) через специальный интерфейс IDispatch, либо через таблицу виртуальных методов. Интерфейс IDispatch позволяет использовать свойства и методы объектов через уникальный идентификатор DispID.

Давай создадим собственный метод. Для этого выдели ветку IPanelX и щёлкни по кнопке. Delphi создаст новое объявление метода Method1. Переименуй его в SetCap. Delphi создаст процедуру SetCap, которая будет является реализацией метода SetCap. Перейди на закладку Parametrs (рис 22.7.3) и добавь новый параметр для процедуры с именем Caption с типом LPSTR, и Modifier равный [in].

Чтобы изменить Modifier нужно дважды щёлкнуть по нему и появиться окно, как на рисунке 22.7.4. Здесь тебе доступны:

Здесь ты можешь выставить следующие свойства: In -означает, что метод является процедурой и используется для установки значений Out -Говорит о том, что метод будет считывать значение компонента RetVal -метод будет возвращать значение Теперь перейди с помощью менеджера проектов в модуль PanelImpl1.pas и найди

процедуру эту SetCap и напиши в ней следующее:

procedure TPanelX.SetCap(Caption: PChar);

begin FDelphiControl.Caption:=Caption; end;

FDelphiControl указывает на компонент, с которым мы работаем, в данном случае это TPanel. У него мы изменяем свойство Caption на то значение, которое указано в качестве параметра в нашей процедуре SetCap.

С помощью SetCap мы изменяем свойство Caption у TPanel, то есть наш метод делает то же, что и Set_Caption.

Рис 22.7.5

Теперь создадим свойство. Кликни по кнопке New Property и выбери "read | write" (рис 22.7.5). Delphi создаст два метода: один для чтения свойства, а другой для записи. Переименуй их в MyProp. В модуле PanelImpl1 у тебя появится две новые процедуры:

function TPanelX.Get_MyProp: Integer;

begin

end;

procedure TPanelX.Set_MyProp(Value: Integer);

begin

end;

Можешь их реализовать, но я не стал. Мне главное было показать, как это делается. Зарегистрируй новый компонент в системе (Run->Register ActiveX Server). Теперь можешь установить его на палитру компонентов (Component->Import ActiveX Control) и протестировать. После регистрации, компонент будет практически не виден на палитре, потому что у него не будет иконки. Чтобы найти созданную панель, перейди на закладку ActiveX и проведи мышкой по палитре компонентов. Самой правой окажется PanelX.

Для теста нужно:

1. 1. Создай новый проект

2. 2. Поставь на форму новый компонент

3. 3. Поставь кнопку и напиши по её событию:

 

procedure TForm1.Button1Click(Sender: TObject); begin PanelX1.SetCap('привет'); end;

На компакт диске, в директорииПримерыГлава 22Controlты можешь увидеть пример этой программы.

На диске, в директории «Документация» ты можешь найти документ под названием «Программирование PWS.doc». В нём описывается процесс написания приложений для WEB сервера. Эти приложения пишутся на основе технологии COM, поэтому я советую тебе прочитать этот документ. Даже если ты не будешь писать свои программы под WEB сервер, документ может оказаться полезным и в будущем может пригодиться.

 

– Конец работы –

Эта тема принадлежит разделу:

Пример создания ActiveX форм

Глава OLE COM ActiveX...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Regsvr32.exe ИмяФайла

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Procedure TForm1.ToolButton6Click(Sender: TObject); var
PostData, Headers:OLEvariant; begin WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT, PostData, Headers); end; Здесь только одна строка, но очень сложная, поэтому

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги