Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык программирования Сpp 25.09.11 (2).doc
Скачиваний:
16
Добавлен:
19.08.2019
Размер:
10.09 Mб
Скачать

494 Глава 7

рых ситуациях подобный макрос может быть полезен, если часто приходится рас-

считывать интервалы между различными датами. К тому же, очень легко услож-

нить ваш элемент ActiveX и внести с помощью его библиотеки типов новые полез-

ные вам свойства и методы.

Рис. 7.18

Пример применения макроса,

использующего элемент ActiveX

риянптвиц

£айл Главка ВИД бсг^вка

О & О М sal <Ы : <Э V

.$ Сбьмньм ч- Пер - : Aral

Сегодня 20.03.2002. Я должен к 30.04.2002, т.е.

через 41 день, закончить книгу.

11 12 13 14 15 16 17

1В 19 iffift 21 22 23 24

25 26 27 28 29 30 31

<1; Сегодня: 20.03.2002

5JS ≪-

Стр. :1 Ст 2 Кол 32

Мы рассмотрели создание элементов ActiveX. Теперь рассмотрим включение

в ИСР C++Builder элементов ActiveX, разработанных вами, или заимствуемых из

тех, которые поставляются с Windows, или полученных где-то на стороне.

Выполните команду Component | Import ActiveX Control. Перед вами откроется

окно, представленноена рис. 7.19. Вверху окна расположен список всех зарегист-

рированных в системе элементов. Если вам требуется установить новый, еще не за-

регистрированный элемент, нажмите кнопку Add и в открывшемся окне найдите

файл .осх устанавливаемого элемента.

Если вы выделите в списке какую-то строку, под списком вы увидите полное

имя соответствующего файла .осх, а в окне Class names появится имя класса или

нескольких классов, реализуемых данным элементом. Выпадающий список Palette

page позволяет выбрать или задать новую страницу палитры компонентов, на ко-

торую будет установлен компонент. Окно Unit dir name содержит каталог модулей,

использующих компонент ActiveX. Окно Search path содержит список путей, ис-

пользуемых при поиске файлов.

Рис. 7.19

Окно импорта элемента ActiveX frnpcft ActiveX I

i (Microsoft Outlook View Control [Version 1.0) ~"лГ| '

i Microsoft Scrip* Control 1 .0 (Veision 1.0)

Microsoft Shell Controls And Automation (Version 1.0)

\ Microsoft Terminal Services Active Gent 1 .0 T>pe Library (Versicr-— J :

! Microsoft TV CA Type Library (V≪sion 1.0)

Microsoft Windows Common Controls 6.0 (Version 2-0]

1 • FAT estA".rrii'ft<\Mon!iCalendai'.ocx

•: pass names: ffMonthCaleTid^X

; . I

: galettepage: (ActiveX

; Uni. & name: JDAPfogramFib^orb

Search path: j$(eCB]\Lib;$lBCi3ABin

Install... | [ CfeateLjnit

Add.. : fiemove 1

3

^≪uu≫6M4x≫irt _.J;

t(8CB)\lmporltt[BCB)\ A

1 Cartel j JlelP |

Процессы, потоки, распределенные приложения 495

Кнопка Create unit создает и открывает в окне Редактора Кода модуль элемен-

та. При этом модуль не включается в текущий проект.

Кнопка Install (установка) открывает окно, в котором запрашивается имя имею-

щегося или нового пакета, в который должен устанавливаться регистрируемый

компонент. Далее открывается окно Редактора Пакетов, работа с которым подробно

описана в гл. 8. В этом окне вы можете произвести установку компонента. В резуль-

тате компонент появится в палитре компонентов на той странице, которая была

указана в окне 7.19. Теперь вы можете использовать его в своих проектах.

7.9 Компоненты-серверы сом

7.9.1 Компоненты-серверы СОМ в C++Builder 6 и 5

Начиная с C++Builder 5, взаимодействие с Word, Excel и многими другими

распространенными программами, входящими в стандартную установку Word и

Microsoft Office, может осуществляться из приложений C++Builder с помощью

компонентов, размещенных в библиотеке на странице Office2k, или Office97, или

Servers. Эти компоненты отображают множество импортируемых серверов СОМ.

Все они являются потомками своего базового класса TOleServer. В этом классе

объявлены абстрактные методы и свойства, позволяющие устанавливать связь

с сервером. Поэтому объекты класса TOleServer нельзя создавать непосредствен-

но. В приложениях используются только потомки этого Класса — конкретные сер-

веры СОМ. Они создаются импортом библиотек типов, с которым вы уже знакомы

по предыдущим разделам.

Но прежде, чем рассматривать серверы СОМ, обеспечивающие работу с компо-

нентами Microsoft Office, надо обсудить вопросы совместимости с различными вер-

сиями Windows и Microsoft Office. Когда вы устанавливаете C++Builder 6, вам за-

дается вопрос, для какой версии Office — 2000, или 97 надо проводить установку.

В зависимости от того, какой вариант вы выбрали, в палитре компонентов появит-

ся страница ОН1се2!<;.или Office97, на которой будут располагаться компоненты сер-

веров. В последующим вы можете при желании в любой момент изменить сделан-

ный выбор. Для этого надо выполнить команду Component | Install Packages. Вы уви-

дите окно, представленное на рис. 7.20. Это окно позволяет управлять набором ис-

пользуемых пакетов. Подробнее работа с этим окном рассмотрена в гл. 8, в разд.

8.5. А сейчас ограничимся описанием тех операций, которые надо сделать для из-

менения установленного в системе пакета.

Рис. 7.20

Страница установки пакетов в окне

опций проекта

х]

Packages |

/ Borland ActionBar Components

У! Borland ADO DB Components

V'i Bwland Base Cached ClientDalasel Component

У\ BoilandBDE DB Components

/; Borland C++Builder COM Server Components jampje Package^

DAProgiam Files\Bo(hnd\CButlder6\BinNbcb97ax$ervef60.bpl

Add.., Remove

Runtime packages

: Г Build with runtime packages

Г Default Cancel Help