Главная страница
    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
1-59802
bkv
2003-05-07 10:21
2003.05.19
Мастера, обьясните что такое Visibroker и с чем его едят?


3-59618
Rise
2003-04-25 15:28
2003.05.19
Delphi и Сайт с БД


1-59668
Lamerr
2003-05-07 09:22
2003.05.19
Хранение табличных данных в файлах


1-59775
Peter
2003-05-06 17:50
2003.05.19
Как узнать путь


4-59979
SunSay
2003-03-18 23:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский