我在word中做好了一个表格,现在用delphi往里面填入内容并打印。现在打印预览有两个问题:
   一个就是点击打印预览按钮时,打印预览窗口不是作为当前的活动窗口显示出来,还要点一下窗口才行,怎么办?
   第二个就是预览窗口显示后,我关上预览窗口,想一起把文件窗口也关掉,大家都知道,在word里,关掉打印预览窗口会显示出原文档,而且会问我文档已经改变,是否保存(因为我向文档里填入了内容),而我不想保存,如何避免弹出此对话框,默认为不保存而直接退出word。
    我用的是delphi里的TApplication和TWordDocument控件

解决方案 »

  1.   

    我试了一下,没出现你说的第一个问题,你看是不是其他地方对窗体有处理。
    第二个可能要调用Word的接口,没做过
      

  2.   

    看看下面的过程,也许对你有帮助:procedure TForm1.btnTowordClick(Sender: TObject);
    var
      template,NewTemplate,ItemIndex,documenttype,cansee,
      defaulttablebehavior,atuofitbehavior:  olevariant;
      vTbl: Table;
      row_count,Col_count  :  integer;//对行列的计数begin
      template:=EmptyParam;
      NewTemplate:=True;
      ItemIndex:=1;
      try
         wordapplication.Connect
      except
        showmessage('cannot load word');
        abort;
      end;
      wordapplication.Visible:=true;
      wordapplication.Caption:='缺陷登记统计报表';
      template:=emptyparam;
      newtemplate:=false;
      cansee:=true;
      wordapplication.Documents.Add(template,NewTemplate,documenttype,cansee);
      worddocument.ConnectTo(wordapplication.Documents.item(itemindex));
      worddocument.Tables.Add(worddocument.Range,grid.RowCount,6,
                   defaulttablebehavior,atuofitbehavior);
      vTbl:=WordApplication.ActiveDocument.Tables.Item(1);
      //vTbl.Cell(1,1).range.text:=grid.cells[1,0];
      //vTbl.Cell(1,2).range.text:=grid.cells[2,0];
      //将表格数据导入word文档
      for row_count:=1 to grid.rowcount do  //from 1 to grid.rowcount
        for col_count:=1 to grid.colcount-1 do begin         //from 1 to 6
          vTbl.Cell(row_count,col_count).range.text:=grid.cells[col_count,row_count-1];
        end;end;
      

  3.   

    1、你的预览按钮事件是 WordDocument.PrintPreview; 吗?如果不是,你改为这个试试
    2、关闭不保存
    var
      SaveChanges,
      OriginalFormat,
      RouteDocument: OleVariant;
    begin
      SaveChanges := WdDoNotSaveChanges;
      OriginalFormat := UnAssigned;
      RouteDocument := UnAssigned;
      try
        WordApplication1.Quit(SaveChanges, OriginalFormat, RouteDocument);
        WordApplication1.Disconnect;
      except
        on E: Exception do
        begin
          Showmessage(E.Message);
          WordApplication1.Disconnect;
        end;
      end;
      

  4.   

    试试办公之星控件,客户端无须安装office软件名称:办公之星控件(OStarOCX)
    软件版本:V1.02
    更新日期:2003.9.18
    运行环境:Win9x/2000/Nt/xp
    支持语言:VC/VB/PB/Dephi/ASP/JSP
    界面语言:简体中文
    授权方式:试用软件
    软件大小:1036KB 
    官方网址:http://www.standsoft.com
    电子信箱:[email protected]
    软件作者:深圳智岛软件有限公司
    演示工程下载:http://www.oapro.com/ostarocx/download_demo.asp
    在线演示:http://www.oapro.com/ostarocx/product_demo.asp
    控件简介:    办公之星控件(OStarOCX)是智岛软件公司(http://www.standsoft.com)推出的一款基于图文混排的文档处理控件(类似Word的控件),办公之星控件(OStarOCX)完全封装了办公之星的文字、图形、表格、图表等功能,提供了几百个编程接口;在ERP、CRM、HR、OA等系统里,开发难度非常大的文档处理、统计、报表等输出功能都可由办公之星控件(OStarOCX)轻松实现,其所见即所得的效果跟现实里的完全一样。办公之星控件(OStarOCX)适用于Windows环境的各种开发工具(如VB,VC,Delphi,C+Builder, PB, Java等), 并且针对Web开发环境做了大量的优化。