如何在Delphi程序中直接打开一个指定的Word文档? http://www.torry.ru/里有控件。嘿嘿。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 delphi可以内嵌word文档控件,delphi自带就有,用一用就知道了。 uses ShellApi; ShellExecute(handle,'open','c:\aaa.doc',nil,nil,SW_Show); unit doc;interfaceuses Word97, Windows, SysUtils;Type TWinWord = class private { Private declarations } App: _Application; function fGetVisible: Boolean; procedure fSetVisible(Visible: Boolean); public { Public declarations } procedure NewDoc(Template: String); procedure GotoBook(Book: String); procedure InsertText(Text: String); procedure MoveRight(Count: integer); procedure Print; procedure UpdateFields; procedure SaveAs(Filename: String); procedure RunMacro(MacroName: String); Constructor Create; Destructor Destroy; override; property visible: Boolean Read fGetVisible Write fSetVisible; end;implementationconstructor TWinWord.Create;begin App := CoWordApplication.Create;end;destructor TWinWord.Destroy;var SaveChanges: OLEVariant; OriginalFormat: OLEVariant; RouteDocument: OLEVariant;begin SaveChanges := wdDoNotSaveChanges; OriginalFormat := unAssigned; RouteDocument := unAssigned; app.Quit(SaveChanges,OriginalFormat, RouteDocument); inherited Destroy;end;function TWinWord.fGetVisible: Boolean;begin result := App.Visible;end;procedure TWinWord.fSetVisible(Visible: Boolean);begin App.Visible := Visible;end;procedure TWinWord.GotoBook(Book: String);var What: OLEVariant; Which: OLEVariant; Count: OLEVariant; Name: OLEVariant;begin// What := xlGoToBook; Which := unAssigned; Count := unAssigned; Name := Book; App.Selection.GoTo_(What, Which, Count, Name);end;procedure TWinWord.InsertText(Text: String);begin App.Selection.TypeText(Text);end;procedure TWinWord.NewDoc(Template: String);var DocTemplate: OLEVariant; NewTemplate: OLEVariant;begin DocTemplate := Template; NewTemplate := False; App.Documents.Add(DocTemplate, NewTemplate);end;procedure TWinWord.MoveRight(Count: integer);var MoveUnit: OLEVariant; vCount: OLEVariant; Extended: OLEVariant;begin MoveUnit := wdCell; vCount := Count; Extended := unAssigned; App.Selection.MoveRight(MoveUnit, vCount, Extended);end;procedure TWinWord.Print;begin OLEVariant(App).Printout;end;procedure TWinWord.UpdateFields;begin App.ActiveDocument.Fields.Update;end;procedure TWinWord.SaveAs(Filename: String);begin OLEVariant(App).ActiveDocument.SaveAs(Filename);end;procedure TWinWord.RunMacro(MacroName: String);begin App.Run(MacroName);end;end. 可以用TwordDocument控件,也可以用Apollo47(阿波罗)的方法。ShellExecute可以打开任何可以打开的文件。 Cnpack 是如何支持多国语言的? delphi调用VC++编写的dll方法! 有关对象创建问题(在线结帖) 俺的软件 三一知识库 发布了,专门为程序员量身定做的文档知识库软件,进来顶呀. access读图片数据出错高分求救! 我想手动添加一个TreeView1的节点,应该怎么写呀? 能不能向TMEMO中加入其他控件? ActiveForm问题,老板催的紧 在线求救 在广东搞开发,薪水有多少? Delphi 不如 VC++ 之你见 如何判断系统是否已经安装IIS?给70分! 安装控件TSpider时提示找不到hyperstr.dcu?
ShellExecute(handle,'open','c:\aaa.doc',nil,nil,SW_Show);
TWinWord = class
private
{ Private declarations }
App: _Application;
function fGetVisible: Boolean;
procedure fSetVisible(Visible: Boolean);
public
{ Public declarations }
procedure NewDoc(Template: String);
procedure GotoBook(Book: String);
procedure InsertText(Text: String);
procedure MoveRight(Count: integer);
procedure Print;
procedure UpdateFields;
procedure SaveAs(Filename: String);
procedure RunMacro(MacroName: String);
Constructor Create;
Destructor Destroy; override;
property visible: Boolean Read fGetVisible Write fSetVisible;
end;implementationconstructor TWinWord.Create;
begin
App := CoWordApplication.Create;
end;destructor TWinWord.Destroy;
var
SaveChanges: OLEVariant;
OriginalFormat: OLEVariant;
RouteDocument: OLEVariant;
begin
SaveChanges := wdDoNotSaveChanges;
OriginalFormat := unAssigned;
RouteDocument := unAssigned;
app.Quit(SaveChanges,OriginalFormat, RouteDocument);
inherited Destroy;
end;function TWinWord.fGetVisible: Boolean;
begin
result := App.Visible;
end;procedure TWinWord.fSetVisible(Visible: Boolean);
begin
App.Visible := Visible;
end;procedure TWinWord.GotoBook(Book: String);
var
What: OLEVariant;
Which: OLEVariant;
Count: OLEVariant;
Name: OLEVariant;
begin
// What := xlGoToBook;
Which := unAssigned;
Count := unAssigned;
Name := Book;
App.Selection.GoTo_(What, Which, Count, Name);
end;procedure TWinWord.InsertText(Text: String);
begin
App.Selection.TypeText(Text);
end;procedure TWinWord.NewDoc(Template: String);
var
DocTemplate: OLEVariant;
NewTemplate: OLEVariant;
begin
DocTemplate := Template;
NewTemplate := False;
App.Documents.Add(DocTemplate, NewTemplate);
end;procedure TWinWord.MoveRight(Count: integer);
var
MoveUnit: OLEVariant;
vCount: OLEVariant;
Extended: OLEVariant;
begin
MoveUnit := wdCell;
vCount := Count;
Extended := unAssigned;
App.Selection.MoveRight(MoveUnit, vCount, Extended);
end;procedure TWinWord.Print;
begin
OLEVariant(App).Printout;
end;procedure TWinWord.UpdateFields;
begin
App.ActiveDocument.Fields.Update;
end;procedure TWinWord.SaveAs(Filename: String);
begin
OLEVariant(App).ActiveDocument.SaveAs(Filename);
end;procedure TWinWord.RunMacro(MacroName: String);
begin
App.Run(MacroName);
end;end.