Вниз
Скачать: CL | DM;

COM сервера MS Office,   Найти похожие ветки 

 
asafr ©   (2003-03-13 18:29) [0]

Работаю с Word97 и Дельфи (закладка "Servers").
Произвожу замену переменных в документе. Все отлично работает, если замену произвести один раз... Если после проведения операции замены открыть WordApplication1.Visible:=True в коде программы или просто открыть Word, например из проводника, а затем закрыть Word, то второй раз программа замены работать не будет. При самом первом обращении в коде к Word (У меня это WordApplication1.Documents.Open(.....)) выдается ошибка:"Сервер RPC недоступен"...
Если не открывать Word, не просматривать его и, произведя изменения, сразу же делать WordDocument1.Close, то операцию замены можно делать сколько угодно раз...
Но мне нужен просмотр изменений... А для этого надо открыть Word... А открыв его, я получаю "Сервер RPC недоступен" при повторном выполнении операции... Цикл замыкается...
Подскажите, что надо сделать для ликвидации этой ошибки?
Заранее всем благодарен...


 
Smashich ©   (2003-03-13 18:31) [1]

WordApp.Disconnect


 
asafr ©   (2003-03-13 18:49) [2]

Smashich ©,
Нет... Не получается


 
Smashich ©   (2003-03-13 18:57) [3]

WordAp:=TWordApplication.Create(nil);
try
WordAp.Options.CheckSpellingAsYouType:=false;
WordAp.Options.CheckGrammarAsYouType:=false;
WordAp.ConnectKind:=ckNewInstance;
try
WordAp.Connect;
except
end;
WordAp.Visible:=false;
WordParam:=Project.TemplDir + Template + ".Dot";//??? ???????...
WordAp.Documents.Add(WordParam,EmptyParam,EmptyParam,EmptyParam);
WordAp.Options.ReplaceSelection:=true;
WordParam2:="Group";
WordParam:=1;
FieldName:=WordAp.ActiveDocument.Bookmarks.Item(WordParam2).Range.Bookmarks.Item(wordParam).Name;
WordAp.ActiveDocument.Bookmarks.Item(WordParam2).Range.Bookmarks.Item(wordParam).Select;
WordAp.Selection.TypeText("O ???!");
WordParam:="O TAK.DOC";
WordAp.ActiveDocument.SaveAs(WordParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordAp.Visible:=true;
WordAp.Activate;
except
on E:Exception do
begin
ShowMessage("?????? ?????? ? Microsoft Word!"#13#10""" + E.Message+""");
WordParam:=false;
WordAp.ActiveDocument.Close(WordParam, EmptyParam, EmptyParam);
WordAp.Disconnect;
end;
end;{}
WordAp.Free;


 
Smashich ©   (2003-03-13 18:58) [4]

в коде артиефакты есть - не обращай внимания - пропустил при вырезании


 
asafr ©   (2003-03-14 11:01) [5]

Да... Что то у меня, похоже, все гораздо серьезнее... Вообщем, у меня почти все так же (за некоторым исключением), но ошибка не проходит.....
За ответ - спасибо большое.....


 
asafr ©   (2003-03-14 17:32) [6]

Ничего серьезного: просто подумать получше надо мне было... Просто перед WordApplication1.Documents.Open(.....)) добавить

WordApplication1:=TWordApplication.Create(Form1);
WordDocument1:=TWordDocument.Create(WordApplication1);



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
1-88042
Lady Natalia
2003-03-13 16:53
2003.03.27
внешний вид формы


14-88171
race1
2003-03-09 16:28
2003.03.27
эх


6-88127
Alex82
2003-02-05 08:28
2003.03.27
Как работать с почтой


1-87967
RelakS
2003-03-18 00:59
2003.03.27
Появление формы попиксельно


14-88216
Adolf
2003-03-11 18:49
2003.03.27
Чаю!




   Наверх