2010-03-22 250 views
2

我插入Word文档使用WordApp.ActiveDocument.Range.InsertAfter()。但是,我这样做后,光标是在插入的前面位置。我曾尝试过插入和插入之前?我试图复制到剪贴板,只是粘贴,但使用这添加#13粘贴,我不想要的。我只是希望Word的用户能够击中Fkey并自动粘贴那些格式化的文本,然后继续输入......任何理想? 我正在使用Delphi 4 Pro。如何将光标移动到插入的末尾?使用ActiveDocument.Range.InsertAfter()后

谢谢罗伊

+0

@罗伊:下面的答案是否回答你的问题?如果没有,让我们继续努力吧。 – 2010-03-25 22:17:43

+0

Thanks Otaku, 直到今天早上我还没有尝试过,但我仍然有点麻烦。我使用德尔福,并没有得到正确的格式来做到这一点。什么值是单位:= WdStory?在德尔福我需要设置正确的变种。另外我注意到这种方法消除了我粘贴文本的格式?我将复制的数据设置在richtext编辑字段中,这样我就可以制作一些粗体和差异字体,但是当我插入格式化时就不见了。我尝试了Win Messages,但没有找到我的文档。 FindWindow(PChar('OpusApp'),零);?有任何想法吗?再次感谢。 Roy – Roy 2010-03-26 13:10:18

+0

对不起,代替'wdStory',在Delphi中,你只会写'6'。但是,既然你想保持格式化,'.InsertAfter'不是你所需要的,我会更新'Paste'下面的代码。 – 2010-03-27 16:34:42

回答

0

是的,你会想要移动插入点后的范围。当您执行InsertAfter时,范围会自动重新调整大小 - 您只需移动到最后,然后选择移动到的位置。这里有一些VBA代码,让你开始:

Sub DoInsertAfter() 
    Dim r As Range 
    Set r = ActiveDocument.Range 
    r.InsertAfter "something difficult to say in Arabic" 
    r.Move Unit:=wdStory 
    r.Select 
End Sub 
+0

你好宅男,你能想出任何东西吗?我试图粘贴自己,但由于什么原因,我无法使用findwindow找到窗口?我也用这个: {查找应用程序的主窗口} // g:= FindWindow(PChar('OpusApp'),nil); // g:= FindWindow('OpusApp',nil); {查找应用程序文本框的窗口} // d:= ChildWindowFromPoint(g,point(50,50)); {现在发送一个字符!!} // SendMessage(g,WM_CHAR,Ord('A'),0); 它会找到一个写字板窗口,但不是MS Office Word窗口? 有什么建议吗? 谢谢罗伊。 – Roy 2010-04-01 13:48:07

+0

我忘了我能够使用粘贴命令,但不能发送消息。像插入后,但当我做粘贴时,它将剥离最后一个空白空间,这就是我将字体返回到“NOT BOLD”的方式,粘贴的文本以粗体和差异字体显示。如果用户继续键入它保持这种格式?所以我在粘贴文本中添加了这个改变,但是在粘贴之前它会将它剪切掉? – Roy 2010-04-01 14:22:09

相关问题