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

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

   
В принципе, сервер автоматизации может содержать любые свойства и методы. Однако существует спецификация
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_). Единственный способ борьбы с этой ошибкой -
не использовать зарезервированные имена.

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



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

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