Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

Проблемы с подключением к Word   Найти похожие ветки 

 
VVR   (2003-05-06 14:46) [0]

Привет всем!

Проблема с подключением к Word из-под Windows 2000, XP.

Из-под Windows 98 все работает четко и быстро.

А делаю я так:
1). Сначала коннектюсь :) к Word:

try
W:=GetActiveOleObject("Word.Application");
except
W:=CreateOleObject("Word.Application");
end; //try


На этом этапе, если стоит Windows 98, то все нормально с любым MS Office-ом.

Если стоит Windows 2000,XP + MS Office XP, то тоже все нормально.

А если стоит Windows 2000,XP + MS Office 2000, то получаю ругательство:

EOleSysError
Вызов был отклонен

Вот это проблема №1 - Как подружить Дельфи с Виндой 2000,XP и Офисом 2000?

2). Далее добавляю пустой документ:

W.Application.Documents.Add(EmptyParam,EmptyParam);
W.Application.Visible := True;


И опять, если стоит Windows 98, то все нормально.

А если стоит Windows 2000,XP то получаю ругательство от Офиса о том, что во время последнего открытия документа normal.dot произошла серьезная ошибка...

И это только если п.1 и п.2 следуют сразу друг за другом.
Если же между ними есть временной промежуток, например по одной кнопке коннектимся к Ворду, а по другой добавляем документ и делаем видимым, то тоже все нормально, и normal.dot оказывается совершенно ни при чем.

Так вот как совмесить п.1 и п.2 в одном месте ( ну чтобы на две кнопки не нажимать, а весь процесс присоединения к Ворду, добавление нового документа, ну и, например сброс каких-нибудь данных - все одним ударом :) ???

Да, и еще одно. Если установить Винду 2000 поверх Винды 98, то тоже все прекрасно работает :) И с любым Вордом :)

Что ж есть такое в Винде 98, чего не хватает 2000 и XP?

Заранее благобдарю. Вячеслав.


 
wildbit   (2003-05-06 17:07) [1]

Попробуй поюзать раннее связывание, на закладке Servers


 
VVR   (2003-05-07 07:19) [2]

Да пробовал я через компоненты на вкладке Servers.
Та же самая ерунда :(
Правда под 98 Виндой тоже все замечательно работает :)


 
Rocker   (2003-05-07 07:30) [3]

Попробуй код:

var
Unknown : IUnknown;
Result : HResult;
App : Variant;

begin
Result := GetActiveObject(ProgIDToClassID("Word.Application"),nil,Unknown);
if (Result = MK_E_UNAVAILABLE) then
app := CreateOleObject("Word.Application")
else
App := GetActiveOleObject("Word.Application");
App.Visible := True;

end;

Проверено в WINDOWS XP!


 
VVR   (2003-05-07 08:07) [4]

Попробовал, ругается на GetActiveObject. Не понимает.
[Error] Main.pas(41): Undeclared identifier: "GetActiveObject"

Может чего еще указать где-то надо?



Страницы: 1 вся ветка

Текущий архив: 2003.05.19;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.007 c
7-59968
SaperXL
2003-03-23 11:12
2003.05.19
разрешение принтера


3-59539
temp
2003-04-29 11:19
2003.05.19
Что за ошибка при установке FastReport?


3-59535
CB
2003-04-24 06:50
2003.05.19
ADO


3-59560
valmont
2003-04-26 06:10
2003.05.19
DBGrid и номер строки


1-59679
bnn
2003-05-07 15:04
2003.05.19
Размер колонок в DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский