Пятница, 17.05.2024, 14:22
Главная Регистрация RSS
Приветствую Вас, Гость
Главная » Delphi и Microsoft Office » Подключение в приложение и активизация серверов СОМ. Часть 2
08:23

Подключение в приложение и активизация серверов СОМ. Часть 2

В приложение, использующее серверы, необходимо подключать как минимум один из указанных в первой части статьи модулей. Например, при работе с сервером Word в ваше приложение должен быть включен оператор

uses ... Word97; // только в Delphi 5, 6 и 7 
или оператор
uses ... Word2000;
или оператор
uses ... WordXP;

В зависимости от подключенного модуля все обращения к серверу будут интерпретироваться в духе той или иной версии Microsoft Office.

При подключении одного из указанных модулей, описывающих сервер, вы можете создать приложение, работающее или с Microsoft Office 97, или с Microsoft Office 2000, или с Microsoft Office XP. Но иногда требуется создать универсальное приложение, которое работало бы с любым офисом. Тогда надо подключить два или три модуля. Например:

uses ... WordXP, Word2000;

Тот модуль, который подключается последним (в данном примере Word2000) будет работать по умолчанию. А на свойства и методы другого модуля надо давать в тексте явные ссылки.

Определить программно, объекты какого именно модуля надо использовать в процессе выполнения, можно воспользовавшись способами определения версии Windows. Например:

var osVerInfo : TOSVersionInfi;
VerOffice : (Off97, Off200, OffXP, UnknownNT, UnknownWin32);
...
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
GetVersionEx(osVerInfo);
with osVerInfo do
begin
if(dwPlatformId = VER_PLATFORM_WIN32_NT)
then begin
if dwMajorVersion = 5
then if dwMinorVersion = 0
then VerOffice := Off200 // Office 2000
else if dwMinorVersion = 1
then VerOffice := OffXP // Office XP
else VerOffice := UnknownNT; // Iaecaanoiue NT
end
else if (dwPlatformld = VER_PLATFORM_WIN32_WINDOWS) and
(dwMinorVersion = 10) and (szCSDVersion[1] <> 'A')
then VerOffice := Off97 // Office 91
else VerOffice := UnknownWin32; // Iaecaanoiue Win32
end;

Приведенный код задает переменной VerOffice значение, соответствующее версии Windows. В дальнейшем значение этой переменной можно проверять, чтобы выполнять операторы соответствующей версии Office. Например:

if (VerOffice = OffXP) then 
... // операторы, ориентированные на Office XP

Правда, это не сработает, если версия Windows не соответствует версии Microsoft Office. Например, в Windows 98 может быть установлен Microsoft Office 2000. В этих случаях помогает свойство Version серверов. Например, для объекта WordApplication1 класса TWordApplication это свойство содержит строку «10.0» для Word 2002 и строку «8.0» для Word 97. Так что распознавание этих версий может быть оформлено следующим образом:

if (StrToInt(Copy(WordApplicationl.Version,0,Pos(' . ' , 
 WordApplicationl.Version)-1) )) < 9 then 
 ... //для Word 97 
 else
 ... //для Word 2000 и старше
Категория: Delphi и Microsoft Office | Просмотров: 1050 | Добавил: PeKpyT | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]