2012-06-29 2 views
0

저는 Delphi에서 작업중인 현재 응용 프로그램에 흥미로운 문제가 있습니다. 문제는 특정 환경에서 TWordApplication의 ActiveDocument가 문서가 완료되기 전에 변경 될 수 있다는 것입니다.Delphi - 집중된 Word 문서 유지

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); 

나는 다음과 같이 초기화됩니다 TWordApplication (WordApp)와 TWordDocument (WordDoc)가

하나의 워크 플로에서 두 번째 문서를 만들면 문서 생성이 중단됩니다. 이 문서가 저장 후에 닫히지 않으면 원래 문서에서 초점을 "훔칩니다". 나는 사용자가 두 번째 문서를 닫는 것을 기억할 필요가 없다는 것이 합법적이라고 생각한다. 내가 원하는 무엇

중 하나가 InsertFile 직접 WordApp WordDoc 또는 다른 방법을 사용 WordDoc의 초점을 전환 -하지만이 옵션이 될 것 같지 않습니다.

(이 내가 첫 번째 문서를 만들 전에 두 번째 문서 에 필요한 데이터를 대조 세 번째 옵션이지만, 그 응용 프로그램 논리의 변화가 필요합니다.)

어떤 도움을?

+0

WordApp.ActiveDocument의 제목이나 다른 문서 속성처럼 ActiveDocument가 원하는 속성인지 확인할 수 있습니까? 그렇지 않은 경우 열린 단어 문서를 탐색하여 찾으려는 단어를 찾고 거기에서 계속하십시오. –

+0

또는 WordDoc.Range (시작, 끝) .InsertFile (....) – Hendra

+0

bibadiak - 문서의 모든 내용을 덮어 쓰도록 TWordDocument에 나누기를 삽입하는 데 문제가 있습니다 ... –

답변

0

결국 워크 플로에서 두 번째 문서를 준비하는 논리를 다시 작성 했으므로 최종 문서를 중단없이 컴파일 할 수 있습니다.