Серверы и контроллеры автоматизации. Экспонируемые свойства и методы

   
На этом шаге мы перечислим экспортируемые свойства и методы.

   
В принципе, сервер автоматизации может содержать любые свойства и методы. Однако существует спецификация
Microsoft на серверы автоматизации, которой следует руководствоваться при их создании. Методы и свойства,
которые, согласно этой спецификации, должны быть реализованы в серверах автоматизации, перечислены в представленных
ниже таблицах (в таблицах 1 и 2 - для сервера автоматизации приложения, в таблицах 3 и 4 - для сервера автоматизации
документа). В случае SDI-приложений свойства и методы обоих серверов могут совпадать. Однако
в MDI-приложеииях необходимо создавать отдельный СОМ-сервер для документа. При этом он
не должен регистрироваться в системном реестре, так как документ невозможно показать без приложения. То есть
в раскрывающемся списке Instancing окна мастера создания сервера документа (рисунок 1) должен быть
выбран пункт Internal.


Рис.1. Задание имени класса

Таблица 1. Свойства объекта автоматизации приложения

Имя Чтение, запись Экспонирование Тип данных Описание
ActiveDocument Только чтение Не обязательно IDispatch, unassigned Активный документ
Application Только чтение Не обязательно IDispatch Приложение
Caption Чтение и запись Не обязательно WideString Заголовок приложения
DefaultFilePath Чтение и запись Не обязательно WideString Путь по умолчанию, используется для открытия/создания файлов без указания пути
Documents Только чтение Не обязательно IDispatch, коллекция Коллекция открытых документов
Full Name Только чтение Обязательно WideString Путь и имя приложения
Height Чтение и запись Не обязательно Single Высота главной формы (в режиме ММ_НIМЕТIС)
Interactive Чтение и запись Не обязательно WordBool Возможность изменения документов пользователем
Left Чтение и запись Не обязательно Single Координата левого верхнего угла главной формы (в режиме ММ_HIMETRIC, отсчет от левого верхнего угла экрана)
Name Только чтение Обязательно WideString Краткое описание приложения в понятной человеку форме
Parent Только чтение Обязательно IDispatch То же, что и свойство Application
Path Только чтение Не обязательно WideString Путь к приложению
StatusBar Чтение и запись Не обязательно WideString Содержимое строки состояния
Top Чтение и запись Не обязательно Single Координата левого верхнего угла главной формы (в режиме ММ_ HIMETRIC, от левого верхнего угла экрана)
Visible Чтение и запись Обязательно WordBool Видимость приложения
Width Чтение и запись Не обязательно Single Ширина главной формы (в режиме MM_HIMETRIC)

Таблица 2. Методы объекта автоматизации приложения

Имя Экспонирование Описание
Help Не обязательно Показывает справку
Quit Обязательно Закрытие приложения
Repeat Не обязательно Повторяет последнюю команду пользователя
Undo Не обязательно Отменяет последнюю команду пользователя

Таблица 3. Свойства объекта автоматизации документа из коллекции документов

Имя Чтение, запись Экспонирование Тип данных Описание
Application Только чтение Обязательно IDispatch Объект приложения
Author Чтение и запись Не обязательно WideString Имя автора
Comments Чтение и запись Не обязательно WideString Комментарии к документу
FullName Только чтение Обязательно WideString Путь и имя файла с документом
Keywords Чтение и запись Не обязательно WideString Ключевые слова для темы
Name Только чтение Обязательно WideString Имя документа
Parent Только чтение Обязательно IDispatch Родитель документа (может быть объектом приложения)
Path Только чтение Обязательно WideString Путь к файлу документа
ReadOnly Только чтение Не обязательно WordBool Возможность редактирования
Saved Только чтение Обязательно WordBool Если имеет значение True, документ не менялся с момента сохранения
Subject Чтение и запись Не обязательно WideString Тема документа
Title Чтение и запись Не обязательно WideString Заголовок документа

Таблица 4. Методы объекта автоматизации документа из коллекции документов

Имя Экспонирование Описание
Activate Обязательно Активизация документа
Close Обязательно Закрытие всех документов
NewWindow Не обязательно Добавление в документ нового окна
Print Обязательно Вывод документа на печать
PrintOut Не обязательно То же самое, что и Print
PrintPreview Не обязательно Предварительный просмотр образца печати
RevertToSave Не обязательно Откат всех изменений до последнего сохраненного в файле состояния
Save Обязательно Сохранение документа
SaveAs Обязательно Сохранение документа под другим именем/в другом формате

   
Можно заметить некоторое дублирование, например, наличие одинаковых методов Print и PrintOut.
Это связано с тем, что в Visual Basic имеется внутренний метод Print и его использование может
привести к путанице.

   
В Delphi также есть совпадающие зарезервированные слова, например Application. При этом
Delphi старается дать другое название таким зарезервированным словам, а имя свойства оставляет без
изменений. В последних версиях частично были исправлены ошибки, характерные для ранних версий Delphi и
проявлявшиеся в том, что в секцию реализации перестают заноситься заготовки методов после щелчка на кнопке
Refresh в окне редактора библиотеки типов. При объявлении зарезервированного метода Delphi
автоматически изменяет его имя и успешно реализует действия, инициируемые щелчком на кнопке
Refresh. Однако при добавлении нового метода или свойства и после щелчка на кнопке Refresh
происходит ошибка - в секции реализации появляются как имя зарезервированного метода (например, Invoke),
так и модифицированное имя метода (Invoke_). Единственный способ борьбы с этой ошибкой -
не использовать зарезервированные имена.

   
На следующем шаге мы рассмотрим нотификационные сообщения во внепроцессорных серверах.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий