1、直接用Delphi的TWordApplication,上面有ConnectKind属性。
2、不要用Free,要用用v_app := nil;
3、TWordDocument有Close,New,Open三个事件。

解决方案 »

  1.   

    对。同意楼上的
    _______________________________________________________________多多交流    共同进步
    [email protected]
    http://nizvoo.myrice.com
    _______________________________________________________________
      

  2.   

    直接用TWordApplication,在打开文件时总是出错呀!!!
    TWordApplication.connect;
    TWordApplication.visible:=true;
    TWordApplication.Documents.open(s1,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
    编译都不能通过??所以我才手工创建的
      

  3.   

    不要用free;用 V_app := unassigned;
    还有创建时可用:
    if FindWindow('OpusApp','Microsoft Word') = 0 then
    begin
            v_app:=CreateOleObject('Word.Application');
            v_app.visible:=True;
    end;
      

  4.   

    Twordapplication是一个类
    你必须在var tw:twordapplication;
    后使用tw
    不能直接用twordapplication
      

  5.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
    a: OleVariant;
    begin
    a := 'c:\a.doc';
    WordApplication1.Connect;
      WordApplication1.Visible := True;
      WordApplication1.Documents.Open(a, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
    end;
      

  6.   

    原来我的文件变量没有设为OleVariant类型,而是设为string,所以用WordApplication总是出错错!!但我的第一个问题还是没有解决,ConnectKind属性到底选哪个才可以让'word事先打开的情况下不再打开一个新的word'呢?我试过了所有的选项;有几个报错,两个可以运行,但总会新打开一个word,即使先前已打开了一个word。
    程序可以控制吗?另个程序中到底要不要WordApplication1:=nil来清除所占用的内存呢??
      

  7.   

    不行呀如果事先打开了一个word,执行这个delphi程序后还会打开另一个word;
    程序中到底要不要WordApplication1:=nil来清除所占用的内存呢??
    我想在关闭或者保存这个打开的word文档后,马上把它保存到数据库中,用ADOTable1blob.loadfromfile,应该可行吧
    问完这个我就要加分了:)
      

  8.   

    ckRunningOrNew应该是可以得。
    程序中不需要赋值为nil,因为程序会替你释放的。
    如果LoadFromFile,我觉得最好先关闭这个Word文档,否则可能读不出来。
      

  9.   

    能和你们多交流吗?E-MAIL:[email protected]