to dybcb():
我把AllowInPlace属性设置成了false,可是还是不行。
在你的计算机上怎么样?

解决方案 »

  1.   

    AllowInPlace属性不起作用,会不会是Bug!!!
      

  2.   

    把AllowInPlace和AllowActiveDoc都设成false
      

  3.   

    要让它显示在独立的窗口里,只能使用Servers面版里面的控件,或者是使用Ole的方法。
    参考:
    1)在Delphi中调用Word软件/文件的方法
        在Word中调用Word软件,归纳起来有三种方法:
          a.通过Delphi的控件TOleContainer 将Word嵌入
          b.使用Delphi提供的Servers控件调用Word,使用Word的属性
          c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,
              利用Com技术编程
          d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。
    2)对几种方法的难易程度的判别
          a.通过Delphi的控件TOleContainer 将Word嵌入
        这是最简单的Ole嵌入,能够直接将Word文档调用,只需要使用ToleContainer.Run就可以将Word文
    档直接启动。且这样启动的Word文档与Delphi程序是一个整体(从界面上看),但是它存在不可克
    服的缺点,即不能通过Delphi控制Word文档,也就不能实现将灵活操纵Word的目的。
          b.使用Delphi提供的Servers控件调用Word,使用Word的属性
        使用Delphi的Servers控件来操纵Word,在编程时Delphi能够实现代码提示,总体上看能够较好的实
    现Delphi对Word的控制,但是还有一些Word的功能不能在Delphi中调用(比如自己编写的VBA宏代码)。
    且实现功能时本来在VBA代码中可选则参数在Delphi调用的时候必须添加,否则,连编译都不能通过。
    本方式启动的Word与Delphi程序分属两个窗体。此办法仅能作为一个参考。
          c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,
    利用Com技术编程
        利用真正的Com技术,将MsWord9.OLD文件类库导入,然后利用Com技术进行使用。
    整体上类似使用Delphi的Servers控件,稍微比Servers控件麻烦,优缺点与Servers控件相同。
          d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。
        本办法是使用以CreateOleObjects方式调用Word,实际上还是Ole,但是这种方式能够真正做到完全
    控制Word文件,能够使用Word的所有属性,包括自己编写的VBA宏代码。与Servers控件和com技术相比,
    本方法能够真正地使用Word的各种属性,和在VBA中编写自己的代码基本一样,可以缺省的代码也不需要
    使用。本方式启动的Word与Delphi程序分属两个窗体。缺点是使用本方法没有Delphi代码提示,所有异常
    处理均需要自己编写,可能编写时探索性知识比较多。
      

  4.   

    要让它显示在独立的窗口里,只能使用Servers面版里面的控件,或者是使用Ole的方法。
    参考:
    1)在Delphi中调用Word软件/文件的方法
        在Word中调用Word软件,归纳起来有三种方法:
          a.通过Delphi的控件TOleContainer 将Word嵌入
          b.使用Delphi提供的Servers控件调用Word,使用Word的属性
          c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,
              利用Com技术编程
          d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。
    2)对几种方法的难易程度的判别
          a.通过Delphi的控件TOleContainer 将Word嵌入
        这是最简单的Ole嵌入,能够直接将Word文档调用,只需要使用ToleContainer.Run就可以将Word文
    档直接启动。且这样启动的Word文档与Delphi程序是一个整体(从界面上看),但是它存在不可克
    服的缺点,即不能通过Delphi控制Word文档,也就不能实现将灵活操纵Word的目的。
          b.使用Delphi提供的Servers控件调用Word,使用Word的属性
        使用Delphi的Servers控件来操纵Word,在编程时Delphi能够实现代码提示,总体上看能够较好的实
    现Delphi对Word的控制,但是还有一些Word的功能不能在Delphi中调用(比如自己编写的VBA宏代码)。
    且实现功能时本来在VBA代码中可选则参数在Delphi调用的时候必须添加,否则,连编译都不能通过。
    本方式启动的Word与Delphi程序分属两个窗体。此办法仅能作为一个参考。
          c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,
    利用Com技术编程
        利用真正的Com技术,将MsWord9.OLD文件类库导入,然后利用Com技术进行使用。
    整体上类似使用Delphi的Servers控件,稍微比Servers控件麻烦,优缺点与Servers控件相同。
          d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。
        本办法是使用以CreateOleObjects方式调用Word,实际上还是Ole,但是这种方式能够真正做到完全
    控制Word文件,能够使用Word的所有属性,包括自己编写的VBA宏代码。与Servers控件和com技术相比,
    本方法能够真正地使用Word的各种属性,和在VBA中编写自己的代码基本一样,可以缺省的代码也不需要
    使用。本方式启动的Word与Delphi程序分属两个窗体。缺点是使用本方法没有Delphi代码提示,所有异常
    处理均需要自己编写,可能编写时探索性知识比较多。
      

  5.   

    xxmmmx(踢踏)说的很多,barat(barat)说的很简单,但是都不能解决
    这个问题,这些天,经过多次实验,我发现不论delphi6还是delphi5
    在OleContainer中如果插入的是bmp文件,则一切正常,如果插入的是
    word文件,则用大家讲的方法,都不行,可是!!!用vb即使是word
    文件都没问题。难道delphi连vb都不如吗?!