作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我尝试在后台线程中使用 TWordApplication。 主线程: WordApp:=TWordApplication.Create(self); StartBgThread(WordApp); B
我在 Delphi 中使用 TWordApplication。我的应用程序打开单词的新实例并在其文档上进行一些操作。问题是当我第一次运行我的应用程序并下一次打开真实的 exe 时。 Word exe
我是一名优秀的程序员,十分优秀!