==>:在程序ocx中用ole方法调出了word(可视),需要在用户退出word时,得到用户所编辑的文件的文件名和保存路径。如何解决?(50分)

  • 主题发起人 主题发起人 newlkf
  • 开始时间 开始时间
N

newlkf

Unregistered / Unconfirmed
GUEST, unregistred user!
==>:在程序ocx中用ole方法调出了word(可视),
需要在用户退出word时,得到用户所编辑的文件的文件名和保存路径。如何解决?
 
事件还是消息?如何用之....
 
在DELPHI5中你可以不用OLE,而直接中SERVER控件页中WORD控件即可.
至于解决办法:1、可以用TOPENDIALOG控件先让用户选择一个WORD文档,然后再调用WORD,用程序
在WORD中打开目标文档,这样你就可以获得文件名及文件路径了.至于如果用户在修改完后再
该名,本人确实没什么好的方法,不过你可以提示用户在你的程序中该名,然后在通过你的程序
保存WORD文档,我想这不难实现.
2、如果有可能,如果目标文档的格式一定,且只需要在特定的地方插入一些
不确定的文字,可以先作成一个模版,在特定的地方插入特殊字符,注意,这些字符不能
与文档中的字符出现重复,将这些字符作成书签。然后,自己用DELPHI或其他做一个界面,
让用户添内容,完成后可以用delphi将这些字符插入到文档的特定位置的中。这可以用
DELPHI调用WORD中的宏来实现。
不知我的理解是否有误。如果有问题,可以EMAIL至:WXNET@263.NET
 
谢谢刃血兄.
办法1是可以的,但不大方便。主要是用户可能是修改文件也可能是新增文件,(文件名和路径都放在数据库中的)
另目标文档的格式是不定的。
根据word里面的帮助,Document 对象有Close、New 和 Open等事件,
但不知如何得到它们的句柄来使用它们。
另外,据说com对象一般是能够回传消息的,可我没见到过这样的内容。不知老兄是怎么看。
 
我以前使用过PB控制过WORD,其实原理我想应该一样
你关键就是利用VBA控制呀,只要你得到当前的VBA中的application.activedocument的相关属性就
知道了呀
我以前PB中代码似乎是ole1.object.application.activedocument.XXX
~~~~~~~~~~~~
关键是DELPHI中你是使用什么达到可以控制当前你打开的WORD
 
是的 , 难点就在于如何控制打开的WORD。暂时我还不能。
 
好象在WORD里面的命令中所有的命令都可以在DELPHI中使用,象插入之类的,在WORD97的
下面/工具/自定义/命令/所有命令
你就可以得到所有的命令的名字
我们以前做过一次
但是,返回名字还是由DELPHI控制即可,在关闭WORD的时候有一个参数,可以提示你保存,
但是具体的名字我忘了,一些书上有(:->,你可以查查(:P
 
多人接受答案了。
 
问题解决:
没有使用D5的Server,因为这会使的ocx的包很大。但参考了它的Documents的OnClose事件的
写法。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
后退
顶部