问题1: 我用ole打开一个,通过流对象取出并显示文档后,用如下语句和   
       wordApp关联: 
   ……     
      OleContainer1.LoadFromStream(tAbs);
       OleContainer1.doVerb(ovShow);//显示文档       WordApp.Connect;
       WordDoc.ConnectTo(WordApp.ActiveDocument);
       
      然后:WordApp.CommandBars['standard'].Set_Enabled(Not ISReadOnly);
    WordApp.CommandBars['standard'].Set_Enabled(true);
    WordApp.CommandBars['standard'].Set_Visible(true);
    WordApp.CommandBars['Formatting'].Set_Enabled(false);
    WordApp.CommandBars['Formatting'].Set_Visible(false);
     …………
  但是这好象根本不能控制word环境中Button组的可视/不可视,做少是有些机器可以,有些机器上不可以,什么原因? 我怀疑 WordApp.Connect有问题,这个wordApp和oleContainer对象中显示的word根本不是同一个;但是
 WordApp.UserName:='XXXX';又能起作用,奇怪Ing
       

解决方案 »

  1.   

    问题2:当我在ole中打开一个word后(从数据字段中取得),如果在从外面(指直接打开而不通过此控件)打开一个word文档,
    则原来oleContainer中可编辑的文档不可编辑了(包括你把外面启动的word关闭), 而只有外面打开的可编辑!我怀疑和语句WordDoc.ConnectTo(WordApp.ActiveDocument)有关,可能此时的WordDoc已经是外面打开的那个word中的Document了,怎么解决! 但是如果关闭外面打开的word而在从控件中重新打开,则又是可以编辑的了! 奇怪Ing!问题3:好象ole特别消耗内存,调用后怎么释放?我只是把它ole 和wordDoc 都close了,但多开几个或多调用几次,则内存不
           足(但我的机器能同时打开的word数量远超这个),要怎么释放? 另外,我重载了控件的构造函数,想在其中来执行
          上面说的close方法,但好象此构造函数(过程)中根本不允许操作控件上的对象,一操作就就提示内存地址冲突,为什么?
           我只有另写一个方法给外部显式的调用!觉得别扭
      

  2.   

    active and visualable 还有什么问题?