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
最新推荐文章于 2018-03-27 19:03:00 发布
本文介绍了一个使用Delphi实现与Microsoft Word自动化交互的应用案例。通过Delphi提供的OLE自动化支持,可以实现Word文档的创建、编辑及打印等功能。文章详细展示了如何在Delphi中通过组件与属性设置来操作Word文档。
1443

被折叠的 条评论
为什么被折叠?



