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

Вниз

Автоматизация Microsoft Word   Найти похожие ветки 

 
fool ©   (2003-05-14 18:09) [0]

Привет МАСТЕРА. Решил соорудить отчет в Word-е ну и наткнулся на грабли :(

Делаю отчет:

begin
AppProdID := "Word.Application";

Result := GetActiveObject(ProgIDToClassID(AppProdID), nil, Unknown);
if Result = MK_E_UNAVAILABLE then App := CreateOleObject(AppProdID)
else App := GetActiveOleObject(AppProdID);

App.Visible := True;
App.Documents.Add;
Doc := App.ActiveDocument;
// что-то генерю ------------------
Doc.Paragraphs.Add;
Rng := Doc.Paragraphs.Item(1).Range;
Rng.InsertBefore("Hello Word!");
// заканчиваю что-то генерить------
App := UnAssigned;
end;

тут вроде все нормально работает, а грабли вот в чем: сгенерил я первый документ, второй... и вот пока генериться N-ный документ я решаю закрыть или сохранить какой-нибудь из предыдущих док-ов. И тут прога выплевывает: "call was rejected by callee" и N-ный документ перестает генериться. Ну и что тут делать?


 
RoadStar ©   (2003-05-14 18:25) [1]

А че тебе мешает сделать так:

try // Если Word уже запущен
W := GetActiveOleObject("Word.Application"); // Взять ссылку на запущенный OLE объект
except
try // Word не запущен, запустить
W := CreateOleObject("Word.Application"); // Создать ссылку на зарегистрированный OLE объект
except
Exit;
end;
end;


 
fool ©   (2003-05-14 18:32) [2]

>RoadStar © (14.05.03 18:25)
дело вкуса, но проблема не в этом



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
3-83346
Vmarchenko
2003-04-30 10:27
2003.05.26
Как связать две таблицы


3-83328
ruslan_as
2003-05-05 11:41
2003.05.26
Наименование столбцов в DBGrid в несколько строчек


1-83593
phantom2040
2003-05-14 14:53
2003.05.26
Вопрос по OpenDialog


6-83625
Жорик
2003-03-24 11:19
2003.05.26
Indy, D7 & HTTP....


7-83756
Vladislav
2003-03-26 11:14
2003.05.26
Всеми любимый GetVolumeInformation