我先写点吧,感觉效果不大好unit WordControl;interfaceuses
Classes, SysUtils, Variants, Word2000, Office2000;type
TWordControl = class
private
FCurrentDocIndex: Integer;
FCurrentDocName: String;
FDocCount: Integer;
FDocument: TWordDocument;
protected
FWordApplication: TWordApplication;
FWordDocument: TWordDocument;
public
FDocsStyle: array of Char;
//文档的打开类型 L :由对象打开 R: 由应用程序打开 constructor Create(shown: Boolean = True); //是否显式调用,默认为是
destructor Destroy; override; function GetDocData(): OleVariant;
function OpenDoc(ADocName:WideString): Integer; overload; //打开外部文件
function OpenDoc(ADocName:WideString ;ADocData: OleVariant): Integer; overload; //打开数据库文件
function SaveDocToDisk(ADocName: WideString): Integer;
function ReplaceTextToDoc(AdocName,AOldText,ANewText:String): Boolean;
procedure PrintDoc(); //打印当前活动文档
procedure PrintViewDoc(); //打印预览当前活动文档
procedure RefreshDoc(); //刷新文档
published
property CurrentDoc: OleVariant read GetDocData; //获得当前文档的内容
property CurrentDocIndex: Integer read FCurrentDocIndex; //当前文档索引
property CurrentDocName: String read FCurrentDocName; //当前文档名称
property DocCount: Integer read FDocCount; //当前打开的文档数目
property Document: TWordDocument read FDocument;
//当前的文档对象,此外是为方便实际应用中进一步的对文档的控制要求。
//property DocsStyle: array of char read FDocsStyle;
end;implementation{ TWordControl }constructor TWordControl.Create(shown: Boolean);
//var
// Template, NewTemplate, ItemIndex: OleVariant;
begin
inherited Create;
FWordApplication := TWordApplication.Create(nil);
FWordDocument := TWordDocument.Create(nil);
// FWordApplication.AutoQuit := True;
FWordApplication.Visible := shown;
FDocCount := 0;
end;destructor TWordControl.Destroy;
begin
if Assigned(FWordApplication) then
FWordApplication.Free;
if Assigned(FWordDocument) then
FWordDocument.Free;
inherited;
end;function TWordControl.GetDocData: OleVariant;
begin
Result := Variant(FWordDocument.Content as IDispatch);
end;function TWordControl.OpenDoc(ADocName: WideString): Integer;
var
FileName,i : OleVariant;
begin
FileName := ADocName;
FDocCount := FDocCount + 1;
i := FDocCount;
FWordApplication.Documents.Open(FileName,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
FWordDocument.ConnectTo(FWordApplication.Documents.Item(i));
Result := 0;
end;function TWordControl.OpenDoc(ADocName: WideString;
ADocData: OleVariant): Integer;
begin
// FWordDocument.Content := (ADocData as IDispatch);
Result := 0;
end;procedure TWordControl.PrintDoc();
var
i: OleVariant;
begin
FWordDocument.PrintOut;
end;procedure TWordControl.PrintViewDoc();
begin
FWordDocument.PrintPreview;
end;procedure TWordControl.RefreshDoc;
begin
FWordDocument.Reload;
{ i := FDocCount;
FWordDocument.Disconnect;
FWordDocument.ConnectTo(FWordApplication.Documents.Item(i)); }
end;function TWordControl.ReplaceTextToDoc(AdocName, AOldText,
ANewText: String): Boolean;
var
FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike,
MatchAllWordForms, _Forward, Wrap, Format, ReplaceWith, Replace: OleVariant;
begin
FindText := AOldText;
MatchCase := False;
MatchWholeWord := False;
MatchWildcards := False;
MatchSoundsLike := False;
MatchAllWordForms := False;
_Forward := True;
Wrap := wdFindContinue;
Format := False;
ReplaceWith := ANewText;
Replace := wdReplaceAll; Result := FWordDocument.Content.Find.Execute(FindText, MatchCase, MatchWholeWord,
MatchWildcards, MatchSoundsLike, MatchAllWordForms,
_Forward, Wrap, Format, ReplaceWith,
Replace, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;function TWordControl.SaveDocToDisk(ADocName: WideString): Integer;
var
SaveChanges: OleVariant;
FileName: OleVariant;
begin
SaveChanges := wdSaveChanges;
FileName := ADocName;
//FWordApplication.Quit(SaveChanges);
FWordDocument.SaveAs(FileName);
FWordDocument.Close(SaveChanges);
//FWordApplication.Visible := False;
//FDocCount := FDocCount - 1;
Result := 0;
end;end.
Classes, SysUtils, Variants, Word2000, Office2000;type
TWordControl = class
private
FCurrentDocIndex: Integer;
FCurrentDocName: String;
FDocCount: Integer;
FDocument: TWordDocument;
protected
FWordApplication: TWordApplication;
FWordDocument: TWordDocument;
public
FDocsStyle: array of Char;
//文档的打开类型 L :由对象打开 R: 由应用程序打开 constructor Create(shown: Boolean = True); //是否显式调用,默认为是
destructor Destroy; override; function GetDocData(): OleVariant;
function OpenDoc(ADocName:WideString): Integer; overload; //打开外部文件
function OpenDoc(ADocName:WideString ;ADocData: OleVariant): Integer; overload; //打开数据库文件
function SaveDocToDisk(ADocName: WideString): Integer;
function ReplaceTextToDoc(AdocName,AOldText,ANewText:String): Boolean;
procedure PrintDoc(); //打印当前活动文档
procedure PrintViewDoc(); //打印预览当前活动文档
procedure RefreshDoc(); //刷新文档
published
property CurrentDoc: OleVariant read GetDocData; //获得当前文档的内容
property CurrentDocIndex: Integer read FCurrentDocIndex; //当前文档索引
property CurrentDocName: String read FCurrentDocName; //当前文档名称
property DocCount: Integer read FDocCount; //当前打开的文档数目
property Document: TWordDocument read FDocument;
//当前的文档对象,此外是为方便实际应用中进一步的对文档的控制要求。
//property DocsStyle: array of char read FDocsStyle;
end;implementation{ TWordControl }constructor TWordControl.Create(shown: Boolean);
//var
// Template, NewTemplate, ItemIndex: OleVariant;
begin
inherited Create;
FWordApplication := TWordApplication.Create(nil);
FWordDocument := TWordDocument.Create(nil);
// FWordApplication.AutoQuit := True;
FWordApplication.Visible := shown;
FDocCount := 0;
end;destructor TWordControl.Destroy;
begin
if Assigned(FWordApplication) then
FWordApplication.Free;
if Assigned(FWordDocument) then
FWordDocument.Free;
inherited;
end;function TWordControl.GetDocData: OleVariant;
begin
Result := Variant(FWordDocument.Content as IDispatch);
end;function TWordControl.OpenDoc(ADocName: WideString): Integer;
var
FileName,i : OleVariant;
begin
FileName := ADocName;
FDocCount := FDocCount + 1;
i := FDocCount;
FWordApplication.Documents.Open(FileName,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
FWordDocument.ConnectTo(FWordApplication.Documents.Item(i));
Result := 0;
end;function TWordControl.OpenDoc(ADocName: WideString;
ADocData: OleVariant): Integer;
begin
// FWordDocument.Content := (ADocData as IDispatch);
Result := 0;
end;procedure TWordControl.PrintDoc();
var
i: OleVariant;
begin
FWordDocument.PrintOut;
end;procedure TWordControl.PrintViewDoc();
begin
FWordDocument.PrintPreview;
end;procedure TWordControl.RefreshDoc;
begin
FWordDocument.Reload;
{ i := FDocCount;
FWordDocument.Disconnect;
FWordDocument.ConnectTo(FWordApplication.Documents.Item(i)); }
end;function TWordControl.ReplaceTextToDoc(AdocName, AOldText,
ANewText: String): Boolean;
var
FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike,
MatchAllWordForms, _Forward, Wrap, Format, ReplaceWith, Replace: OleVariant;
begin
FindText := AOldText;
MatchCase := False;
MatchWholeWord := False;
MatchWildcards := False;
MatchSoundsLike := False;
MatchAllWordForms := False;
_Forward := True;
Wrap := wdFindContinue;
Format := False;
ReplaceWith := ANewText;
Replace := wdReplaceAll; Result := FWordDocument.Content.Find.Execute(FindText, MatchCase, MatchWholeWord,
MatchWildcards, MatchSoundsLike, MatchAllWordForms,
_Forward, Wrap, Format, ReplaceWith,
Replace, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;function TWordControl.SaveDocToDisk(ADocName: WideString): Integer;
var
SaveChanges: OleVariant;
FileName: OleVariant;
begin
SaveChanges := wdSaveChanges;
FileName := ADocName;
//FWordApplication.Quit(SaveChanges);
FWordDocument.SaveAs(FileName);
FWordDocument.Close(SaveChanges);
//FWordApplication.Visible := False;
//FDocCount := FDocCount - 1;
Result := 0;
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货