gpt4 book ai didi

delphi - TWordApplication 和 Word 碰撞

转载 作者:行者123 更新时间:2023-12-03 15:45:34 29 4
gpt4 key购买 nike

我在 Delphi 中使用 TWordApplication。我的应用程序打开单词的新实例并在其文档上进行一些操作。问题是当我第一次运行我的应用程序并下一次打开真实的 exe 时。 Word exe 没有打开新的单词实例,但它链接到我的应用程序实例。因此,当我的应用程序写入其文档时,所有文本都会显示在用户可见的 exe 单词上。

WordApp := TWordApplication.Create(nil);
WordApp.ConnectKind := ckNewInstance;
(WordApp.Documents.Add(EmptyParam,EmptyParam,EmptyParam, varFalse ));

然后用户手动打开 Word。

WordApp.Selection.Text := 'test test test';

用户会在手动打开的 Word 中看到“测试测试测试”。

如果我首先手动打开 Word 并启动我的应用程序,一切正常。

最佳答案

这是 Word 的默认行为,它使用正在运行的实例。您所要做的就是存储对要修改的文档的引用。所以不要使用ActiveDocument,而是使用您存储的Document。因为无法保证 ActiveDocument 就是您认为的文档。

//starting Word
var
App: TWordApplication;
Doc: WordDocument;
begin
App := TWordApplication.Create(nil);
Doc := App.Documents.AddOld(EmptyVar, EmptyVar); //open new document

<..somewhere else..>
//modifying Word
Doc.DoWhateverIWant; // <--see? no ActiveDocument, so you are not
// modifying the users doc

关于delphi - TWordApplication 和 Word 碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5649410/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com