我想知道的是,在OleContainer容器里面显示了word的菜单,但文件和窗口这两个菜单相不见了,我想把文件这项菜单找回来,请问在delphi里可以做到吗?

解决方案 »

  1.   

    保存:
      olecontainer1.oleobject.ativedocument.save();
     打印:
      olecontainer1.oleobject.ativedocument.print();
     不知道我有没有记错,你看一下vba for word帮助吧。
      

  2.   

    在word里面跟踪它的宏名令的保存和打印
    然后把命令加在Delphi里面就可以了。
      

  3.   

    to robinhunter(深空):
    请问能不能把那个文件菜单项找回来呢?
    还有一个问题,在哪个事件里可以知道里面的内容已经被修改了,也就是说在哪个地方检查olecontainer1.modifed。
      

  4.   

    to DelUser(探索者)
    能具体一些吗?可否贴一些代码上来呢?
      

  5.   

    看有没有被修改用activedocument.saved来判断。把菜单项找回来我就不知道了,你可以编程判断一下菜单是否被隐藏了,如果是只要改成显示就行了,你给我个邮箱,我告诉你怎么改。
      

  6.   

    怎么这么久都没有一个人回答啊。Delphi里能不能实现这个功能?
      

  7.   


    用activedocument.printpreview方法。兄弟,你这样问也不是办法啊,装word时把vba帮助装上不就有了。不过在olecontainer的情况下不一定好用。
      

  8.   

    VBA里面的帮助代码里的示例:
    If Application.PrintPreview = False Then
        ActiveDocument.PrintPreview
    End If我在delphi里的代码:
    procedure TForm2.P1Click(Sender: TObject);
    begin
     Caption:=OleContainer1.OleObject.Application.ActiveDocument.Name;
     OleContainer1.OleObject.Application.ActiveDocument.PrintPreview;
    end;caption可以正常显示出来了,但就是不能打印出来,老是提示说所需视图无效!!请问怎么解决这个问题啊
      

  9.   

    试一试函数:ExecWB,帮助上什么都有,包括保存、打印等。
      

  10.   

    可能根本就没办法解决。我以前也试过用olecontainer控制word,可后来放弃了,很难控制,而且不稳定,老出莫名其妙的问题,word版本不同也会有问题。
      

  11.   

    如果不用olecontainer,请问用什么方法会比较好呢?
      

  12.   

    如果你的文档只有文字,可以用程序把doc变成rft,再读入richedit.
    如果不要求显示在你自已的界面中的话用ole控制,这种方法最好。
      

  13.   

    我就是想把word显示在自己的窗口里啊,所以还是想用olecontainer。
    仔细观察了一下,发现word里的打印按钮可用,预览按钮不可用,在delphi里
    相应地OleContainer1.OleObject.application.ActiveDocument.PrintOut;可用OleContainer1.OleObject.Application.ActiveDocument.PrintPreview;不可用。看来用代码是无法实现的。唯一的做法只能是先保存,再用OLE调用打印预览的功能了。十分感谢robinhunter(深空)的帮助!!