Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_TKP_ObAvt.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
340.99 Кб
Скачать

6 .6.7.2 Компонент tOleContainer.

Для создания и использования OLE-документов в приложениях, разрабатываемых на Delphi, предназначен компонент ToleContainer, находящийся на странице System палитры компонентов. Он позволяет поместить OLE-документ на поверхности формы. Этот компонент инкапсулирует все интерфейсы, необходимые для создания клиентов OLE-документов. Он является удобным контейнером для размещения связанного или внедренного OLE-объекта. Такие объекты (фрагменты текста, картинки, таблицы и т. п.) на форме приложения Delphi выглядят как обычно или заменяются значками.

Свойства компонента ToleContainer приведены в Приложении 4, его методы описаны в Приложении 5, а события – в Приложении 6.

Наиболее часто используемыми свойствами этого компонента являются:

  • AutoActivate, определяющие, каким образом активизируется OLE-документ;

  • State - состояние OLE-контейнера;

  • OleClassName - имя класса (CLSID) OLE-объекта, содержащегося в контейнере.

Наиболее часто используются следующие методы этого компонента:

  • InsertObjectDialog — выводит стандартное диалоговое окно Object для выбора типа документа или загрузки его из файла (аналогичное диалоговому окну Вставка объекта, показанному на рис. 6. );

  • CreateObject - создает OLE-объект;

  • CreateObjectFromFile - создает OLE-объект на основе существующего файла, содержащего OLE-документ, и помещает его в OLE-контейнер;

  • DestroyObject - уничтожает объект, содержащийся в OLE-контейнере.

Все методы, с помощью которых производится создание или сохранение объектов в OLE-контейнере, строятся на основе системных диалоговых окон (аналогичных диалоговому окну Вставка объекта, показанному на рис. 6. ), а соответствующие методы просто экспортируют их из операционной системы. При визуальном проектировании приложения вы можете, вызвав всплывающее меню контейнера, выбрать команду Вставка | Объект (Insert | Object или Insert Object) и внедрить или связать объект, хранящийся в виде файла, с контейнером. Во время работы приложения те же действия можно выполнить с помощью методов CreateObjectFromFile или CreateLinkToFile. После этого всплывающее меню контейнера дополнится списком операций, которые допускается производить над данным объектом. Чтобы получить список для функционирующего приложения, надо обратиться к свойству ObjectVerbs.

Объект разрешается вставить из буфера обмена как во время визуального проектирования приложения (команда всплывающего меню Paste Special), так и во время его работы (методы Paste или PastSpecialDialog).

Вы можете создать “пустой” объект с помощью раздела всплывающего меню Insert Object (в этом случае в диалоговом окне надо просто указать класс объекта, например документ Microsoft Word, но не помещать в него информацию). Аналогичные действия нетрудно выполнить для функционирующего приложения, воспользовавшись методами InsertObjectDialog, CreateObjectFromlnfo или CreateObject.

Во время работы допускается активизировать встроенный объект с помощью метода DoVerb либо при выборе объекта (свойство AutoActivate имеет значение aaGetFocus), либо при двойном щелчке мышью (свойство AutoActivate равно aaDoubleClick).

После активизации объекта в клиентской части контейнера появится пользовательский интерфейс сервера (если свойство AllowInPlace равно True). В противном случае сервер будет загружен в отдельном окне. Заметим, что некоторые серверы не поддерживают местную активизацию и, поэтому, всегда будут загружаться отдельно.

Отредактированный объект можно сохранить в виде файла (метод SaveAsFile или SaveAsDocument), а также скопировать в буфер обмена (команда Сору). Чтобы ускорить загрузку сервера при активизации документа, заранее запустите его с помощью метода Run.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]