如何把Word嵌入到Delphi的Form里?(100分)

  • 主题发起人 主题发起人 nofault
  • 开始时间 开始时间
原来有个项目用VC做的操作OLE,WORD的,就是这么干的。不过做的不是很完美!
DELPHI就提供个OLE容器做这种工作只能如此!具体操作就得参考VBA了!
 
使用OleContainer与wordapplication控件一起使用,可对word进行各种控制!!
 
方法有很多了:
1。olecontainer和wordapplication
前面有人很详细的讲过了,不在赘述。
2。WebBrowser
在Form中放入WebBrowser控件和一Button,在ButtonClick中加入以下代码:
WebBrowser1.Navigate('E:/Test.doc');
OK了!
这类问题前人讲过很多,可以去“全文检索”去搜搜看,会有以外收获的!
 
你说的方法我用过,WebBrowser1.Navigate('E:/Test.doc');执行后,照样启动的是Word程序:(
 
在delphi中使用olecontainer来打开word或excel文档,按钮都是乱七八糟的,如果不是特别必要的话,最后还是启动Word单独的窗体。
 
目前我也正面临这个问题啊,用户的要求是要在窗口中打开Word文档,而不是启动Word程序啊
 
李维的ado/mts/com+ P127讲了ado存取excel,那么word应该也是如此吗???
 
使用ole控件镶入word,用VBA来控制WORD
 
用COM控制被嵌入到OleContainer中的WORD。WordApplication1为server面板上的TWordApplication.至于WordApplication如何用就不用说了吧。


OleContainer1.CreateObjectFromFile ('xxxxxxxxxxxxxx.doc', False);
OleContainer1.DoVerb (ovInPlaceActivate);
WordApplication1.ConnectTo(IDISPATCH (OleContainer1.OleObject.Application) as _Application);
 
先谢过楼上兄弟,用的方法较高
 
TOleContainer 不能用,有个致命的Bug 。

用OleContainer打开一个Word 文档,OK,一切正常。
这时候,你在新开一个Word窗口,回来到我们的程序,
看看出现了什么效果吧。

不能进行编辑了............555555555...........

而我们的客户,多数时候都需要新开个Word 打开一些
其它文档,进行复制些文本内容过来。。。。
致命啊,因此要找个解决办法。。。
 
to 久久,那是因为你的TOLE控件没有再次激活的原因吧?

你激活后,也不能编辑吗?不是吧!!
 
什么时候再次激活呢?你写写看看阿

Excel也有这个问题,Excel是先打开Excel 然后用OleContainer
打开Excel文档,前面打开的Excel就不接受输入了,这个又怎么
激活?
 
to 久久,小弟不才没有明白你的意思!

你既然用Ole控件Excel,为什么事先还要打开Excel的主程序呢?我不明白你要做什么!
 
我 用Ole控件Excel,感觉不是很好
 
To: doll_paul

是这样的,我的程序要用Word, Excel 打开一些文件让用户编辑,然后保存起来。
用户他们打开Excel主要是要从里面复制一些数据到我的应用程序。
而用户什么时候打开Excel,Word 是他的事情,总之不能出现这样的情况
客户不允许的。
 
后退
顶部