2012-06-29 2 views
0

У меня возникла интересная проблема с текущим приложением, над которым я работаю в Delphi. Проблема в том, что при определенных обстоятельствах ActiveDocument нашего TWordApplication может быть изменен до того, как документ будет завершен.Delphi - Сохранение документа Word сфокусировано

У меня есть TWordApplication (WordApp) и TWordDocument (WordDoc), которые инициализируются, как показано ниже:

WordApp.Connect; 
WordApp.Documents.Add(Template, EmptyParam, EmptyParam, EmptyParam); 
WordApp.ChangeFileOpenDirectory(jdir); 
WordDoc.ConnectTo(WordApp.ActiveDocument); 

В основном я затем обновить закладки или вставить текст из нескольких шаблонов:

Range := ''; 
convert := msoFalse; 
LinkFile := msoFalse; 
Attach := msoFalse; 
WordApp.Selection.InsertFile(Template, Range, Convert, LinkFIle, Attach); 

В одном рабочем процессе создание документа прерывается созданием второго документа. Если этот документ не закрыт после сохранения, он «крадет» фокус с оригинала. Я думаю, что законно, что пользователю не нужно забывать закрыть второй документ.

То, что я хочу сделать, это либо переключить внимание WordApp к WordDoc или альтернативно использования WordDoc непосредственно для InsertFile - но это, кажется, не быть одним из вариантов.

(Существует третий вариант, где я собирать необходимые данные для второго документа перед тем создать первый документ, но это потребует изменения в логике приложения.)

Любая помощь?

+0

Вы можете посмотреть какое-либо свойство, как название или другое свойство документа, WordApp.ActiveDocument, чтобы определить, является ли ActiveDocument тем, что вы хотите? Если это не так, то закройте открытые документы слова, чтобы найти тот, который вы ищете, и продолжайте оттуда. –

+0

или WordDoc.Range (начало, конец) .InsertFile (....) – Hendra

+0

bibadiak - У меня возникают проблемы с вставкой перерыва в TWordDocument, поэтому вставка переписывает все в документе ... –

ответ

0

В конце я переписал логику, чтобы подготовить второй документ ранее в рабочем процессе, то есть я могу скомпилировать окончательный документ без перерыва.

Смежные вопросы