使用MS Word的FormattedText属性而不是剪贴板将RTF文本传递给Word

gtr*_*tro 6 delphi ms-word delphi-2009 office-automation

我想使用Word自动化(早期绑定)拼写/语法检查TDBRichEdit组件的内容,同时在此过程中保留源的RTF格式.显而易见的方法是使用剪贴板,如下所示:

  1. DBRichEdit.SelectAll;
  2. DBRichEdit.Lines.CopyToClipboard;
  3. WordDoc.Content.Paste;
  4. 做拼写/语法检查;
  5. WordDoc.Content.Copy;
  6. DBRichEdit.PasteFromClipboard.

它的工作原理,但我认为这是糟糕的编程,因为它与剪贴板内容混淆(这可能很烦人).

我刚刚偶然发现了Range对象的FormattedText属性,它允许通过将其分配给范围对象而不是通过剪贴板传递来复制和粘贴RTF格式的文本(包括段落格式).它被宣布为

property FormattedText:读取范围Get_FormattedText写入Set_FormattedText;

在WordXP.pas中,我不知道如何为它分配TDBRichEdit的内容.是否可以使用这家酒店?我也尝试过流式传输到word文档,但无济于事.

如何在不使用剪贴板的情况下将TDBRichEdit组件(DBRchEdit.Lines)的内容分配给Word文档(并在拼写/语法检查后将其恢复)?