Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с подключением к 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
14-59950
ghg
2003-04-30 07:59
2003.05.19
сотовая связь на украине


3-59619
ligor
2003-04-28 21:25
2003.05.19
FibPlus


1-59693
alt7
2003-05-05 14:34
2003.05.19
TApplication


1-59647
zapmax
2003-05-05 12:59
2003.05.19
Перетягивание ветвей в TTreeView


3-59602
sva82
2003-04-28 11:51
2003.05.19
Замена строк на столбцы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский