delphi中如何在自己的窗口中调用word?

解决方案 »

  1.   

    使用servers控件组里的wordapplicaiton控件
      

  2.   

    但是我打开的word在新的窗口中,能不能在本窗口中打开?
      

  3.   

    var
        picturefile :TFileName;
        book:Tbook;
        jhid,zdid,zdmc,FileName,newfile:string;
        ConfirmConversions, ReadOnly, AddToRecentFiles,
        PasswordDocument, PasswordTemplate, Revert,
        WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;
    begin
      button1.Enabled := false;  //启动word时间可能比较长,不让用户再按打印按钮
      book := Query1.GetBook;
      Query1.GotoBook(book);
      jhid := Query1.fieldbyname('jhid').AsString;
      try
        ConfirmConversions := False;  //word中用到的一些参数
        ReadOnly := False;
        AddToRecentFiles := False;
        PasswordDocument := '';
        PasswordTemplate := '';
        Revert := True;
        WritePasswordDocument := '';
        WritePasswordTemplate := '';
        Format := 0;
        MSWord:=CreateOleObject('Word.Application'); //启动word程序 
        newfile := ExtractFileDir(Application.Exename) + '\report\' + jhid + '.doc';
        filename := ExtractFileDir(Application.Exename) + '\report\module.doc';
          //拷贝一个和module一样的文件    if copyfile(pchar(filename),pchar(newfile),true)= false then
        begin       //如果拷贝失败 新文件可能已经存在,删除之后再拷贝
           deletefile(newfile);
           copyfile(pchar(filename),pchar(newfile),true);
        end;    copyfile(pchar(filename),pchar(newfile),true);
        MSWord.Documents.Open(newfile,ConfirmConversions,ReadOnly,AddToRecentFiles,
                    PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument,
                    WritePasswordTemplate,Format); 
      except    //系统没有安装word软件
        MessageDlg('Word may not be installed',mtError, [mbOk], 0);
      end;
      Query1.FreeBook(book);
      

  4.   

    我拷了程序中的一段下来,你自己看看吧!先用word用写一个宏就可以看到了!再把代码拷贝修改到Delphi中就可以了!
      

  5.   

    用ole控件
        Olecontainer1.CreateObjectFromFile('文件名',false);
        OleContainer1.DoVerb(0);
      

  6.   

    wordapplication能打开word但是是在第二个窗口中打开word,我想在delphi窗口中打开,并且最好去掉word本身的一些菜单
      

  7.   

    http://expert.csdn.net/Expert/topic/1447/1447372.xml?temp=.1357843我刚刚结的贴子
      

  8.   

    wjlsmail(计算机质子) ( ) :我看了你的贴子,你那个贴子也是在单独打开word,我的想法是能不能在delphi的窗体中打开word?因为我想让用户将文件保存一个固定的位置,要是用户可以随便保存文件,那我就不知道用户保存在什么位置,以后就没法子调用了
      

  9.   

    因为我想让用户将文件保存一个固定的位置,要是用户可以随便保存文件 ?word 不是默认保存在“我的文档”中吗 ?没有看懂您的意思 ,真希望 cg1120(代码最优化-§新年祝福你,好运伴着你§) 老师能看到贴子
      

  10.   

    wjlsmail(计算机质子) 能留下你的qq或者msn?
      

  11.   

    http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20154907.html这个贴子的内容可能对你有用!
      

  12.   

    http://expert.csdn.net/Expert/ForumList_Search.asp?searchtype=1&bigclassid=53&smallclassid=5301&searchKeys=OleContainer&author=&tabletype=now要看中文的,那也可以呀,在CSDN中就有很多了,我相信这些内容有一些是对你有用的了!
      

  13.   

    在DelphiX\demos\activex\Olectnrs\olesdi.dpr这就是你要找的答案!
    打开这个工程运行后点击菜单edit->insertobject选word就行了!
    接分!
      

  14.   

    强烈同样:99guo(小兵) 
    此程序稍微修改一下就行了!
    有问题请发信息到我的E-mail:[email protected]