2010-03-22 247 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

相關問題