【敬请关注】 TWebBrowser控制WORD ! (100分)

  • 主题发起人 主题发起人 aningok
  • 开始时间 开始时间
A

aningok

Unregistered / Unconfirmed
GUEST, unregistred user!
一直用olecontainer控制word,但是发现该控件不够稳定,打算换成用TWebBrowser去
连接word,对doc文档进行控制。

1、在olecontainer中是这样得到WORD(类型为variant)对象的
ole.CreateObjectFromFile(tempfileName,true);
ole.DoVerb(-1);
WORD :=Ole.OleObject;
2、请问在TWebBrowser中如何得到该browser正在打开的word文档实例,对其进行控制?
好像要通过IDispatch接口才能取到对象?

请各位踊跃参与讨论,不吝赐教!!
 
请各位帮忙阿!
用olectontainer连接word会出现不少问题。
比如olecontainer正在嵌入显示word文档时,用户如果打开直接打开硬盘上任一篇doc文档
ole所在界面就会失去焦点,无法再编辑了 :(
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
 
多谢Celestial dog兄的 参与 。
您提供的帖子我以前已经拜读过,写的不错。
可惜里面没有关于TWebBrowser控制word的描述
也没有指出避免olecontainer失去焦点,不能进行编辑时的解决方法
请继续关注,谢谢。
 
procedure TForm1.Button2Click(Sender: TObject);
var
Word,Section : OleVariant;
tempFileName : string;
begin
tempFileName := 'F:/Programs/Test/word/aaa.doc';
webBrowser1.Navigate(tempFileName);
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
aWord,section : OleVariant;
begin
aWord := webBrowser1.Document;//用document接口得到worddocument的实例
Section := aWord.Sections.Item(1);
Section.Headers.Item(wdHeaderFooterPrimary).Range.Text := 'This is A test';
end;
 
为什么不用Servers里的控件,例子和资料都很多,也很稳定,我一直在用。
 
to realLearning 兄:
我以前像你这样写过,不行,但是你的代码确实可以,肯定加分!
有问题还想问问你,Twebbrowser的方式能不能把工具条调出来?
另外用Twebbrowser进行word文档编辑时,如果用户再直接点击打开一篇word文档
Twebbrowser中的word就只读了,好像是失去焦点了,如何避免?谢谢!分数不够可以再加的。
 
to linsb兄:
我也想用 Servers里的控件的,但是我需要把WORD嵌入到我的窗体中,而不是单独打开一个word,请问用servers里面的控件能做到这一点吗?如何实现?还有你说的例子资料很多,能否告知 ? 谢谢!
 
Servers里的控件控制word的例子和资料在大富翁已发很多帖子,也解决了不少实际问题,如果只是为了把WORD嵌入到我的窗体中,可先编辑好(delphi),然后Twebbrowser的方式调出来显示。如果word的文档仅限于RTF格式,可用RxRichEdit控件显示。
 
嵌进来还需要灵活控制的,比如修改用户信息,添加标签等,这些通过olevariant对象都可以做到。
Twebbrowser中得到的worddocument的实例可以和server中的Tworddocument协调使用吗?
另外失去焦点的问题有什么好的解决方案吗?
谢谢!!
 
>>用olectontainer连接word会出现不少问题。
>>比如olecontainer正在嵌入显示word文档时,用户如果打开直接打开硬盘上任一篇doc文>>档ole所在界面就会失去焦点,无法再编辑了 :(

你找一下我记得回答过一次关于olecontainer嵌入word文档失去焦点的问题,应该有
控件可以避免。
 
to hengnuo兄:
我找了很久都没找到您说的帖子,还请帮忙看看。
 
WebBrowser 打开 Word 有一个致命的缺点,如果用户机器上安装了3721的网络实名,WebBrowser就打不开Word了,我现在只能用olecontainer,尽管有olecontainer嵌入word文档失去焦点的问题,但总比打不开的好。
 
老是失去焦点也不是个办法阿?
这个好像是ole的bug,据说目前还没办法解决。
 
多人接受答案了。
 
后退
顶部