During som Word automation from Delphi XE, I have two documents open at the same time. I want to copy the contents of a given range of one document to another range in another document. How can i do this?
Consider the following code:
procedure TForm1.ManipulateDocuments; var vDoc1,vDoc2 : TWordDocument; vFilename : olevariant; vRange1,vRange2 : Range; begin vDoc1 := TWordDocument.Create(nil); vDoc2 := TWordDocument.Create(nil); try vFilename := 'c:\temp\test1.doc'; vDoc1.ConnectTo(FWordApp.Documents.Open(vFilename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam)); vFilename := 'c:\temp\test2.doc'; vDoc2.ConnectTo(FWordApp.Documents.Open(vFilename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam)); vRange1 := GetSourceRange(vDoc1); vRange2 := GetDestinationRange(vDoc2); vRange2.CONTENTS := vRange1.CONTENTS; //What should I substitute for CONTENTS? finally vDoc1.Free; vDoc2.Free; end; end;
Is there anything I could replace with CONTENT? I cannot use text because I want to copy formatting, bookmarks, field codes, etc. Should I do it differently? Any suggestions?