Основы COM. Рудалев В.Г - 29 стр.

UptoLike

29
Другая особенность состоит в том, что клиентам предоставляются только те
свойства, методы и события, которые связаны непосредственно с формой
ActiveX. Это означает, что свойства, методы и события компонентов VCL, рас-
положенных на форме, недоступны клиентам. Если же необходимо предоста -
вить клиентам доступ к свойствам внутренних компонентов VCL, следует до-
бавить в форму ActiveForm новые опубликованные свойства и методы, как в
процессе создания элемента управления ActiveX.
Рассмотрим пример, который при минимуме программного кода позволяет по -
казать основные этапы и особенности создания ActiveForm.
Разрабатываемая форма ActiveForm содержит два поля редактирования, метку и
кнопку Button, после нажатия которой содержимое окон редактирования пе-
ремножается, а результат отображается на Label.
Этап 1. Создание проекта ActiveForm.
Для создания ActiveForm требуется выполнить следующие шаги .
Выберите в главном меню File New - Other. На экране появится окно репози-
тория объектов .
Как и при создании внутреннего сервера , выберите на закладке ActiveX сначала
ActiveX Library, а затем - ActiveForm. Далее Вы увидите окно мастера
ActiveForm Wizard, которое ничем не отличается от ActiveX Control Wizard за
исключением того, что поле VCL ClassName в данном случае является недос-
тупным.
Введите в поле New ActiveX Name значение MyFormX. Измените значение по -
ля Implementation Unit на MyFormImpl.pas. Измените значение поля Project
Name на MyFormProj.dpr. Оставьте установку поля Thread Model без изменений
(его значением должно быть Apartment). Отметьте флажок Include Version In-
formation.
                                          29
Д ругая особенность состои т в том, что кли ентам пред остав ляю тся только те
св ой ств а, метод ы и собы ти я, которы е св яз аны непосред ств енно с формой
ActiveX. Э то оз начает, что св ой ств а, метод ы и собы ти якомпонентов VCL, рас-
полож енны х на форме, нед оступны кли ентам. Е сли ж е необход и мо пред оста-
в и ть кли ентам д оступ ксв ой ств ам в нутренни х компонентов VCL, след ует д о-
бав и ть в форму ActiveForm нов ы е опубли ков анны е св ой ств а и метод ы , какв
процессесоз д ани яэлемента управ лени яActiveX.
Рассмотри м при мер, которы й при ми ни мумепрограммного код а поз в оляетпо-
каз ать основ ны еэтапы и особенности соз д ани яActiveForm.
Раз рабаты в аемаяформа ActiveForm сод ерж и тд в а поляред акти ров ани я, метку и
кнопку Button, после наж ати я которой сод ерж и мое окон ред акти ров ани я пе-
ремнож ается, а рез ультатотображ аетсяна Label.
Э тап 1. Соз д ани епроекта ActiveForm.
Д лясоз д ани яActiveForm требуетсяв ы полни ть след ую щ и еш аги .
В ы бери те в глав ном меню File – New - Other. Н а экранепояв и тся окно репоз и -
тори яобъектов .
К аки при соз д ани и в нутреннего сервера, в ы бери тена з аклад кеActiveX сначала
ActiveX Library, а з атем - ActiveForm. Д алее В ы ув и д и те окно мастера
ActiveForm Wizard, которое ни чем не отли чается от ActiveX Control Wizard з а
и склю чени ем того, что поле VCL ClassName в д анном случае яв ляется нед ос-
тупны м.




В в ед и те в полеNew ActiveX Name з начени еMyFormX. И з мени тез начени епо-
ля Implementation Unit на MyFormImpl.pas. И з мени те з начени е поля Project
Name на MyFormProj.dpr. О став ьтеустанов ку поляThread Model без и з менени й
(его з начени ем д олж но бы ть Apartment). О тметьте флаж окInclude Version In-
formation.