代码是这样的:
1 olecontainner1。destroyoleobject;
//假设在创建新文档之前已经确保清空ole控件
2 olecontainer1.createoleobject('word.document',False);
3 olecontainer1.doverb(ovprimary);
4 ......问题是:
执行该代码段在ole控件中打开一个空白document,此时可以对该文档进行编辑,此后用word的快捷方式(注意没有用delphi程序打开)再次打开一个word程序,然后焦点再切换回刚刚用delphi打开的word文档时,问题来了:该文档就不可以编辑了,文档并没有保护,也能确定delphi打开的文档为当前活动文档,但就是不能通过键盘输入信息,光标不闪缩,我查看了一下资源管理器,此时只有一个word的应用程序(也许该叫COM服务器)在运行,后来尝试启动2个以上的word应用程序时,上述显现就不会出现了, 不知道为什么,,我可不想启动两个word应用程序啊,大家来帮帮忙啊,迷惑中
1 olecontainner1。destroyoleobject;
//假设在创建新文档之前已经确保清空ole控件
2 olecontainer1.createoleobject('word.document',False);
3 olecontainer1.doverb(ovprimary);
4 ......问题是:
执行该代码段在ole控件中打开一个空白document,此时可以对该文档进行编辑,此后用word的快捷方式(注意没有用delphi程序打开)再次打开一个word程序,然后焦点再切换回刚刚用delphi打开的word文档时,问题来了:该文档就不可以编辑了,文档并没有保护,也能确定delphi打开的文档为当前活动文档,但就是不能通过键盘输入信息,光标不闪缩,我查看了一下资源管理器,此时只有一个word的应用程序(也许该叫COM服务器)在运行,后来尝试启动2个以上的word应用程序时,上述显现就不会出现了, 不知道为什么,,我可不想启动两个word应用程序啊,大家来帮帮忙啊,迷惑中
解决方案 »
- Indy9和Indy10的比较问题
- 关于数据库方面的问题一个问题
- 如何按一定格式解析字符串?如aaaa;bbb;ccc;按';'把aaaa,bbb,ccc解析出来
- 如何在SQL Server中存储大图片?
- 在先等待,高分求助!!!!
- DBGrid1.Options:=DBGrid1.Options+[dgRowSelect]后如何用程序撤消dgRowSelect?
- 在MDI中怎么使MDICHILD窗体在屏幕的中间?
- 特急!web服务器上可运行isapi程序(.dll)但不能执行cgi程序(.exe)??
- @@@@@@@(紧急!!!)如何用OLE显示多页的带图片和表格的WORD文档,最好讲的详细点,分不够,我在加.
- 高分求助!!进来看一看!
- -----结婚喜帖,欢迎大家接分-----
- 怎样用ADOX 建Access 表,不要说用SQL的方式了
摘自别处:三、Delphi程序打开Word文稿[/b]
格式: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);四、Delphi程序保存Word文稿
格式:WordDocuments.SaveAs(FileName, FileFormat, LockComments, Password,
AddToRecentFiles, WritePassword, ReadOnlyRecommended,
EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData,
SaveAsAOCELetter)FileName: 文件名。默认为当前文件夹和文件名。
FileFormat 文档保存的格式。
LockComments 如果为 True,则此文档只允许进行批注。
Password 打开文档时的口令。
AddToRecentFiles 如果为True,则将文档添至"文件"菜单中最近使用的文档列表中。
WritePassword 保存对文档的修改所需的口令。
ReadOnlyRecommended 如果为 True,在每次打开文档时,Word 将建议用户采用只读方式。
EmbedTrueTypeFonts 如果为 True,则将文档与 TrueType 字体一起保存。
SaveNativePictureFormat 如果为 True,则从其他系统平台(例如 Macintosh)导入的图形仅保存其 Windows 版本。
SaveFormsData 如果为 True,则将窗体中用户输入的数据存为一条数据记录。
SaveAsAOCELetter 如果文档包含一个附加,当此属性值为 True 时,将文档存为一篇 AOCE 信笺(同时保存邮件)。
自己找到了解决办法,大概是因为olecotainer失去了焦点,所解决办法就是
olecontainer.show;//激活
olecontainer.doverb(ovshow);
就可以重新激活了
截获wm_active消息,编写以上代码即可