unit UJoin_word; interface uses //指定使用系统的单元文件 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleServer, Buttons, DBCtrls, Db, Grids, DBGrids, DBTables, ExtCtrls, Menus, Word2000,Variants; {根据用户在安装Delphi时,指定使用Office97还是Office2000,使用的单元文件不同如果指定使用Office97,则应包括Word97,如果指定使用Office2000,则应包括Word2000;} type TForm1 = class(TForm) //定义在窗体上使用的组件 WordApplication1: TWordApplication; //连接Word应用组件 WordDocument1: TWordDocument; //连接Word文档组件 Edit1: TEdit; ConnectWordBtn: TBitBtn; DataSource1: TDataSource; Table1: TTable; DBGrid1: TDBGrid; DBMemo1: TDBMemo; DBNavigator1: TDBNavigator; WordFont1: TWordFont; //该变字体组件 ComboBoxFont: TComboBox; MainMenu1: TMainMenu; //菜单组件 Word1: TMenuItem; Start: TMenuItem; N2: TMenuItem; Word2: TMenuItem; N3: TMenuItem; Append: TMenuItem; Save: TMenuItem; PreView: TMenuItem; print: TMenuItem; Insert: TMenuItem; Close: TMenuItem; QuitRun: TMenuItem; //定义使用数据库的组件 Table1BDEDesigner: TIntegerField; Table1BDEDesigner2: TStringField; Table1BDEDesigner3: TDateField; Table1BDEDesigner4: TStringField; Table1BDEDesigner5: TStringField; Table1BDEDesigner6: TStringField; Table1BDEDesigner7: TStringField; //如下定义事件处理过程 procedure FormCreate(Sender: TObject); procedure ComboBoxFontChange(Sender: TObject); procedure AppendClick(Sender: TObject); procedure StartClick(Sender: TObject); procedure InsertClick(Sender: TObject); procedure SaveClick(Sender: TObject); procedure PreViewClick(Sender: TObject); procedure printClick(Sender: TObject); procedure CloseClick(Sender: TObject); procedure QuitRunClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); //当建立窗体时,调用该过程,它完成菜单初始设置 begin Table1.close; Table1.open; ComboBoxFont.Items:=Screen.Fonts; //将各种字体保存到带有下拉列表的组合框中 WordFont1.ConnectTo(WordDocument1.Sentences.Get_last.Font); WordFont1.Bold:=1; MainMenu1.Items[0].enabled:=True; //开始时,允许进行连接Word操作 MainMenu1.Items[1].enabled:=False; //在连接Word之前,不允许进行文档处理 MainMenu1.Items[2].enabled:=False; //在连接Word之前,不允许关闭Word的操作} edit1.selectAll; edit1.CopyToClipboard; //将编辑框的内容拷贝到粘贴板上 end; procedure TForm1.AppendClick(Sender: TObject); //该事件处理过程将粘贴板上的内容拷贝到Word文档中 begin WordDocument1.Sentences.Last.Paste; //将粘贴板上的内容拷贝到文档中 WordDocument1.Range.InsertAfter(#13); //在文档的后面加上换行符 end; procedure TForm1.StartClick(Sender: TObject); var Template,NewTemplate,ItemIndex:OleVariant; //开始菜单事件处理过程,连接Word应用,设置Word文档的标题和菜单选项 begin Template:=EmptyParam; NewTemplate:=true; ItemIndex:=1; try WordApplication1.connect; //使用WordApplication组件的connect方法,启动Word except //如出现异常,显示提示信息并终止连接 messageDlg('Word2000 是否已正确安装',mtError,[mbOk],0); abort; end; WordApplication1.Visible:=True; //使Word应用成为可视 WordApplication1.caption:='Delphi连接Word(Automation应用)'; //设置文档标题 WordDocument1.connectTo(WordApplication1.Documents.Item(ItemIndex)); //将文档组件WordDocument1和应用组件WordApplication1相关联 MainMenu1.Items[0].enabled:=False; //在连接Word之后至关闭之前,不允许再连接Word MainMenu1.Items[1].enabled:=True; //在连接Word之后,可完成文档处理操作 MainMenu1.Items[2].enabled:=True; //在连接Word之后,允许关闭Word end; procedure TForm1.InsertClick(Sender: TObject); //在Word文档的后面插入信息,如果出现错误,则显示错误信息并解除与Word的连接 begin try WordDocument1.Range.InsertAfter(table1.fields[3].AsString+#13); //在文档的最后插入 Except on E:Exception do //如出现异常,显示提示信息 begin Showmessage(E.Message); WordApplication1.Disconnect; //如插入出错,则解除连接 Table1.close; //关闭数据库表 end; end; end; procedure TForm1.SaveClick(Sender: TObject); //保存文档菜单项事件处理过程,将新建的文档保存到指的位置和文件中 var SaveDocFile,EmptyPara:OleVariant; begin SaveDocFile:='c:/file1.doc'; //指定保存文档的位置 EmptyPara:=EmptyParam; WordDocument1.SaveAs(SaveDocFile,EmptyPara); //调用SaveAs方法,保存Word文档 end; procedure TForm1.PreViewClick(Sender: TObject); //预览打印文档菜单项事件 begin WordDocument1.PrintPreView; //调用PrintPreView方法,预览打印文档 end; procedure TForm1.printClick(Sender: TObject); // 打印文档菜单项事件处理过程 begin WordDocument1.PrintOut; //调用PrintOut方法,完成Word文档的打印 end; procedure TForm1.CloseClick(Sender: TObject); //关闭菜单项事件处理过程 var SaveChanges,OriginalFormat,RouteDocument:OleVariant; begin SaveChanges:=wdDoNotSaveChanges; //wdDoNotSaveChanges是一个常数,在Word2000.pas单元中定义, // 其值为$00000000 OriginalFormat:=UnAssigned; RouteDocument:=UnAssigned; try WordApplication1.Disconnect; //解除与Word程序建立的连接 WordApplication1.Quit(SaveChanges,OriginalFormat,RouteDocument); //Quit方法在Word2000.pas单元中定义,调用它将退出并关闭Word程序, //此处调用将不保存文档的内容 finally end; end; procedure TForm1.ComboBoxFontChange(Sender: TObject); //改变字体事件处理过程 begin WordFont1.ConnectTo(WordDocument1.Sentences.Get_last.Font); WordFont1.Name:=ComboBoxFont.text; WordFont1.Bold:=2; //将显示文档的字体改成黑体 WordFont1.Italic:=1; //将显示文档的字体改成斜体 WordFont1.Size:=16; //将显示文档的字体大小改成16 end; procedure TForm1.QuitRunClick(Sender: TObject); //退出菜单项事件处理过程 begin exit; end; end.
在Delphi中操作Word
最新推荐文章于 2024-09-02 11:46:21 发布