在使用OleContainer操纵Word文档时遇到了这样的问题:
    我希望能够通过OleContainer、WordDocument等Delphi控件控制Word文档的书签、标题等,但是我发现每次当我的输入焦点离开OleContainer以后,整个OleContainer就被冻结,即使我用鼠标双击OleContainer所在区域也无法使里面的Word文档获得输入焦点。
    看到论坛上以前好像也有人提到过这个问题,当时大家给他的答复是只要将OleContainer的属性AutoActivate设置为aaDoubleClick就可以了,但是我在自己的程序中是这样设置的也不起作用。
    请各位遇到过类似问题的朋友多给建议,谢谢。

解决方案 »

  1.   

    我也遇到类似的困扰!我用olecontainer来嵌入word,一切正常,但是当我去点击硬盘上的一篇word文档,word启动并打开该文档后,我的程序olecontainer就失去焦点了,olecontainer所在的区域就像死了一样。我现在暂时的解决方法是,在程序中提供一个“重新激活“按钮,该按钮对容器进行doverb操作:olecontainer1.doVerb(ovShow),按钮点击后就正常了,但总不能每次“死“了之后都去点击按钮吧。郁闷中
      

  2.   

    看来你和我用的是一样的trick,这种办法很傻阿,呵呵。线上的各位兄弟有没有更好的办法,能够不用专门提供一个方法“激活”OleContainer,只需要简单的双击OleContainer就能激活的?
      

  3.   

    在设计期就把OleContainer的属性AutoActivate设置为aaDoubleClick
    就没有这个问题吧.
      

  4.   

    在OleContainer的OnExit事件中加入
    OleContainer1.Close;
    即可
      

  5.   

    将OleContainer的Align属性设为alClient即可。