Пятница, 17.05.2024, 13:55
Главная Регистрация RSS
Приветствую Вас, Гость
Главная » Delphi и Microsoft Office » Где найти свойства и методы серверов, и как задавать их параметры
08:19

Где найти свойства и методы серверов, и как задавать их параметры

Далее мы рассмотрим основные свойства и методы серверов. Но описать все свойства и методы невозможно — их слишком много. Так что неизбежно возникает вопрос — где найти недостающую информацию? Ответ достаточно простой — всю информацию можно найти в справках по программированию соответствующих программ. Например, для сервера Word можно получить сведения по свойствам и методам, комбинируя сведения, полученные из файлов Word97.pas, Word2000.pas и WordXP.pas со сведениями, почерпнутыми из справки программы Word — раздел «Справка по программированию".

Если у вас нет в Word такого раздела, значит вы не указали соответствующее средство при установке Microsoft Office. Надо повторить установку Microsoft Office, добавив справку по программированию на языке Бейсик. Для сервера Excel сведения по свойствам и методам можно получить, комбинируя сведения, полученные из файлов Excel97.pas, Excel2000.pas и ExcelXP.pas со сведениями, почерпнутыми из справки Excel — раздел «Справка по программированию". Как и для Word, если у вас нет такого раздела в справке Excel, значит вы не указали соответствующее средство при установке Microsoft Office.

Схема получения информации из справки по программированию и соответствующих файлов Delphi может быть примерно такой. Вы смотрите в справке Word или Excel описание интересующего вас объекта, его свойств и методов (к сожалению, описание, как правило, на английском языке), а затем в файлах Word97.pas, Word2000.pas и WordXP.pas, или в файлах Excel97.pas, Excel2000.pas и ExcelXP.pas смотрите объявление соответствующего свойства или метода, принятое в Delphi.

Если в метод сервера требуется передать какие-то аргументы, то надо иметь ввиду, что аргументы любых типов, кроме аргументов типа Text, передаются в вызов метода только как объекты типа OleVariant. Если какие-то аргументы не являются обязательными, то при работе с сервером СОМ они все равно должны фигурировать в вызове метода. Только вместо их значений может быть указана EmptyParam — переменная типа Ole Variant, используемая вместо необязательных параметров. Эта переменная объявлена в модулях System и OleCtrls, которые должны быть подключены к проекту.

Для вызова в Excel диалога открытия файла с параметрами, установленными в Excel, и последующей загрузки в окно Excel выбранной пользователем книги надо выполнить метод диалога Show с тридцатью необязательными параметрами. В сервере СОМ программы Excel соответствующий оператор будет выглядеть так:

ExcelApplicationl.Dialogs[xlDialogOpen].Show( 
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); 

В нем приходится 30 раз повторять переменную EmptyParam для значений параметров по умолчанию. А тот же оператор для сервера автоматизации OLE имеет вид:

Excel.Dialogs[xlDialogOpen].Show; 

Вероятно, комментарии излишни.

При задании параметров метода в серверах СОМ их надо задавать в той последовательности, в которой они объявлены в соответствующем объекте. А при задании параметров метода в серверах автоматизации OLE они задаются в форматах "имя := значение" и разделяются запятыми, причем последовательность задания параметров безразлична. Это дополнительное удобство, так как не требуется помнить последовательность параметров в объявлении метода. К тому же, не требуется переводить все значения параметров в тип OleVariant. Пусть, например, надо закрыть документ Word, который был открыт последним. Для закрытия документа применяется метод Close, который принимает три необязательных параметра. Если при этом документ не надо сохранять, то в сервере СОМ соответствующий код имел бы вид:

var n: OleVariant; 
n := 1;
WordApplicationl.Documents.Item(n).Close(EmptyParam,
EmptyParam, EmptyParam);

А при необходимости сохранять документ, причем именно в формате Word код был бы еще более громоздким:

var n, SaveChanges, OriginalFcrmat : OleVariant; 
n := 1;
SaveChanges := wdSaveChanges;
OriginalFormat := wdWordDocurrent;
WordApplicationl.Documents.Item(n) .Close (SaveChanges,
OriginalFormat, EmptyParam);

В сервере автоматизации OLE код более компактный. В первом варианте:

WordApplicationl.Documents.Item{Index := 1).Close;

Во втором варианте:

WordApplicationl.Documents.Item(Index := l).Close( 
SaveChanges := wdSaveChanges, OriginalFormat := wdWordDocument);
.
Категория: Delphi и Microsoft Office | Просмотров: 2390 | Добавил: tansor-smerti | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]