我的代码如下以下是连接的代码
Var
  ItemIndex :OleVariant;
  FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
  PasswordDocument, PasswordTemplate, Revert,
  WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;
  template,newtemplate:OleVariant;
begin
 //WordFont1.ConnectTo(WordDocument1.Sentences.Last.Font);  WordApplication1.Create(WordDocument1);
  template:=EmptyParam;
  newtemplate:=true;
  itemindex:=1;
WordApplication1.Connect;
WordApplication1.Visible:=true;
WordApplication1.Caption:='nihao';
WordApplication1.Options.CheckSpellingAsYouType:=false;
WordApplication1.Options.CheckGrammarAsYouType:=false;
FileName:=ExtractFilePath(application.exename)+'LXB.doc';//模板文件,在编译程序前先建立这个文件,放在C盘  //参数赋值
  ConfirmConversions := False;
  ReadOnly := False;
  AddToRecentFiles := False;
  PasswordDocument := '';
  PasswordTemplate := '';
  Revert := True;
  WritePasswordDocument := '';
  WritePasswordTemplate := '';
  Format := wdOpenFormatDocument;
  //打开文档(模板)
  WordApplication1.Documents.OpenOld( FileName, ConfirmConversions,
    ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
    Revert, WritePasswordDocument, WritePasswordTemplate, Format );  ItemIndex := 1;
  WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));向word里写入数据
  //WordDocument1.PageSetup.Orientation := wdOrientLandscape;//横向
  //WordDocument1.Tables.Item(1).Cell(2,1).Range.Text:='11111'
   //WordDocument1.Tables.Add(WordDocument1.Words.Last,33,6,EmptyParam,EmptyParam);
   WordDocument1.Tables.Item(1).Cell(1,3).Range.Text := Edit2.Text;
   WordDocument1.Tables.Item(1).Cell(1,5).Range.Text := combobox1.Text;
   WordDocument1.Tables.Item(1).Cell(2,3).Range.Text := Edit3.Text;
   WordDocument1.Tables.Item(1).Cell(3,3).Range.Text := Edit4.Text;
   WordDocument1.Tables.Item(1).Cell(3,5).Range.Text := Edit5.Text;以下是断开连接的代码try
 WordApplication1.Quit();
 WordApplication1.Disconnect; Except
   on e:Exception do
   begin
    ShowMessage(e.Message);
    WordApplication1.Disconnect;
    end;程序里第一次连接没问题,能写入word文档中
但第二次连接则会提示WordApplication1已经存在的报错信息
请大虾指点该怎么样的代码!!非常感谢

解决方案 »

  1.   

    在Word中调用Word软件,归纳起来有四种方法:a.通过Delphi的控件TOleContainer 将Word嵌入b.使用Delphi提供的Servers控件调用Word,使用Word的属性c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,利用Com技术编程d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。你是用的哪种啊?
      

  2.   

    b.使用Delphi提供的Servers控件调用Word,使用Word的属性
      

  3.   

    WordApplication1.Create(WordDocument1);这句只要对象上次在执行这个函数没有释放,第二次调用会出现问题,劝你作个标记,如果已经有这个对象了,就不要再创建!
      

  4.   

    程序中的问题已经初步解决在生成word文档的按钮的 click事件里添加
     Var
      WordApp: TWordApplication;
      WordDoc: TWordDocument;
    // ===== 创建对象 =====
        if not Assigned(WordApp) then                          
        begin
          WordApp:= TWordApplication.Create(nil);
          WordApp.Visible := false;
        end;
        if not Assigned(WordDoc) then
          WordDoc:= TWordDocument.Create(nil);
    等验证代码即可防止重复创建请教如何释放这个对象??
    请问yaya82有没有联系方法,比如QQ,我是新手,在学校做狠简单的项目,有问题能请教么?这个问题解决即结帖!!