当前位置:主页>销售管理软件> 列表

很急(现在头很晕了:) )!怎样在form上面嵌套显示wo

企业管理软件版1楼: 我想在form上显示word,当然菜单不要,怎么控制?
以前见过一个VB程序,没有菜单,但是标尺,右键菜单都有
我以前做的都是控制word打开等,但那都是在外部,没有显示在form上
请大家帮忙!!!!急!!!
大家可以看看我的散分速度很快的[:D]

2楼: olecontainner 如南京管家婆财务软件

3楼: 查本论坛名贴:Delphi与Word之间的融合技术

4楼: to suninrain:olecontainner我试过,效果不好,整个form都融合了。
to newsmile: 我当然查询过,但是目前还没有发现恰当的方法。
谁有Demo,感激不尽 tj654321@126.com

5楼: 我用Server组件。虽然调用时会自动打开其它窗口,其实也没有大碍嘛。
当然,如果能达到楼主的意图,真是求之不得,学习中...

6楼: to ggabcdef:虽然调用时会自动打开其它窗口?什么意思?
我的意思是要让word文档显示(内嵌)在form上面,如form上的DBGRID一样,

企业管理软件版7楼: 是太容易还是?

8楼: 你是只要求显示WORD文档,还是需要进行编辑它啊?我那个DEMO也是有菜单的啊,和你的需求不完全一致啊.

9楼: to:app2001请发一个给我先![:D]
我的是
self.OleContainer1.CreateObjectFromFile(''E:\StealSoft\doc\test.doc'',false);
//self.OleContainer1.Run ;
self.OleContainer1.DoVerb(0);
用self.OleContainer1.SaveToFile()保存后word打不开
只用来显示也可以,但是其有一些菜单和工具条。奇怪,上次看到vb作的就可以不显示菜单和工具条,就显示word主体部分(当然右键菜单有)。

难道只有用createoleobject另外打开一个word才是完全解决方案?

10楼: 在某一个Form1上,添加一个OleContainer1控件。然后双击OleContainer1控件,
在弹出的对话中选择‘由文件创建,录入或选中你要加载的Word文档.最后,单击确定按钮即可。这时你,会看到在OleContainer1中显示的内容,就是你选中的Word文档内容.

11楼: 1、to WangWB: 那是当然,但是没有保存按钮是灰色的
2、如果用self.OleContainer1.SaveToFile()保存后word打不开

12楼: 来自:yf168, 时间:2005-9-28 15:43:54, ID:3221961
1、to WangWB: 那是当然,但是没有保存按钮是灰色的
2、如果用self.OleContainer1.SaveToFile()保存后word打不开


终于说出来要什么东西了,SaveToFile以后你看看格式如何,有个BDOC的标志的,所以只能使用LoadFromFile打开,如果要保存就只有通过OleContainer1里面的对象的方法,TOleContainer.OleObject.SaveAsDocument(-----) 这样才是真正的文件,注意,SaveAsDocument是Word的方法,其他ole不一定是这样 如速达财务软件单机版

13楼: 谢谢各位热情相助,


正在试验中...

企业管理软件版14楼: 没有EMAIL

15楼: my email address: tj654321@126.com 谢谢!

16楼: self.OleContainer1.DoVerb(1);
OleContainer1.OleObject.SaveAsDocument(''E:\StealSoft\doc\test2.doc'');
self.OleContainer1.DoVerb(0);
报错 method ''SaveAsDocument'' not supported by the automation object

///应该是 OleContainer1.SaveAsDocument(''E:\StealSoft\doc\test2.doc'');[:)]
这样就不报错了,其他问题解决中

17楼: OleWord时一些用用的代码
yzhshi@263.net
一、Delphi程序启动Word
采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:
首先使用GetActiveOleObject(''Word.Application'')判断当前内存中是否存在Word程序,如果存在,则直接连接,如果没有Word程序,则使用CreateOleObject(''Word.Application'')启动Word
二、Delphi程序新建Word文稿
格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)
Template: 使用模板的名称,
NewTemplate: 新建文档的类型,True表示为模板,False表示为文档
DocumentType: 文档类型,默认为空白文档


Visible: 打捞的窗口是否可见
举例:Doc_Handle:=Word_Ole.Documents.Add(Template:=''C:\Temlate.dot'',NewTemplate:=False);
三、Delphi程序打开Word文稿
格式:WordDocuments.Open(FileName,ConfirmConversions,ReadOnly,PassWordDocument,
PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,
Format,Encoding,Visible)
FileName: 文档名(包含路径)
Confirmconversions: 是否显示文件转换对话框
ReadOnly: 是否以只读方式打开文档
AddToRecentFiles: 是否将文件添加到"文件"菜单底部的最近使用文件列表中
PassWordDocument: 打开此文档时所需要的密码
PasswordTemplate: 打开此模板时所需要的密码
Revert: 如果文档已经,是否重新打开文档
WritePasswordDocument: 保存对文档更改时所需要的密码
WritePasswordTemplate: 保存对模板进行更改时所需要的密码
Format: 打开文档时所需使用的文件转换器
Encoding: 所使用的文档代码页
Visible: 打开文档的窗口是否可见
举例:
Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,
AddToRecentFiles:=False);

18楼: 用vba是可以关闭菜单的,查office帮助吧,当然vba语句要转成delphi。

19楼: 谢谢各位相助,我自己再看看


最后一个问题:如果要嵌到form上是否只能用TOleContainer?

20楼: 发了

企业管理软件版21楼: end the probleam.
Thanks to all participants,especially to App2001 because of your email to me,
I am studying this problem now;
Thanks a lot