Delphi 操作Word怎么控制光标的位置啊? 哪位大哥有这方面的经验啊,指点小弟一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit ControlWordS;interfaceuses Classes, Sysutils, Word97;type TControlWord = class(TComponent) private { Private declarations } FWordApp : TWordApplication; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; function OpenWordFile(DocPath : String) : Boolean; procedure myAppQuit(Sender: TObject); { 將游標移到本行第一碼 } procedure MoveToLineFirst; { 將游標移到本行最後一碼 } procedure MoveToLineEnd(Selected : Boolean); { 將游標移到本頁最前 } procedure MoveToPageFirst; { 將游標移到本頁最後 } procedure MoveToPageEnd; { 將游標向右移動N碼 } procedure MoveToRight(Selected : Boolean; lCount : Integer); { 設定書籤 } procedure AddBookMark(BookMarkName : String); { 移動到指定的書籤上 } function GotoBookMark(BookMarkName : String) : Boolean; { 切換頁首頁尾 } procedure ChangSeekType(ViewType : String); { 取得游標現在所在頁次 } function GetNowPageNumber : Integer; { 存檔 } procedure SaveDocument(DocPath : String); function FindText(KeyStr : String) : Boolean; published { Published declarations } end;implementation{ TControlWord }procedure TControlWord.AddBookMark(BookMarkName: String);var aRange, aDefaultSorting : OleVariant;begin With FWordApp Do Begin aRange := Selection.Range; ActiveDocument.Books.Add(BookMarkName, aRange); aDefaultSorting := wdSortByName; ActiveDocument.Books.DefaultSorting := aDefaultSorting; ActiveDocument.Books.ShowHidden := True; End;end;procedure TControlWord.ChangSeekType(ViewType: String);var aSeekTYpe : OleVariant;begin If UpperCase(ViewType) = 'PAGEFOOTER' Then aSeekTYpe := wdSeekCurrentPageFooter Else If UpperCase(ViewType) = 'PAGEHEADER' Then aSeekTYpe := wdSeekCurrentPageHeader Else aSeekTYpe := wdSeekMainDocument; With FWordApp Do Begin ActiveWindow.ActivePane.View.SeekView := aSeekTYpe; End;end;constructor TControlWord.Create(AOwner: TComponent);begin inherited Create(AOwner); FWordApp := TWordApplication.Create(Self); FWordApp.OnQuit := myAppQuit;end;destructor TControlWord.Destroy;begin FWordApp.Disconnect; FWordApp.Free; inherited Destroy;end;function TControlWord.FindText(KeyStr: String): Boolean;begin //end;function TControlWord.GetNowPageNumber: Integer;var aPageType : OleVariant; NowPageNumber : Integer;begin aPageType := wdActiveEndPageNumber; NowPageNumber := FWordApp.Selection.Information[aPageType]; Result := NowPageNumber;end;function TControlWord.GotoBookMark(BookMarkName: String): Boolean;var aWhat, aWhich, aCount, aName : OleVariant;begin with FWordApp Do Begin aWhat := wdGoToBook; aName := BookMarkName; Result := True; If ActiveDocument.Books.Exists(aName) Then Selection.GoTo_(aWhat, aWhich, aCount, aName) Else Result := False; End;end;procedure TControlWord.MoveToLineEnd(Selected: Boolean);var aUnit, aExtend : OleVariant;begin With FWordApp Do Begin aUnit := wdLine; aExtend := wdExtend; If Selected Then Selection.EndKey(aUnit, aExtend) Else Selection.EndKey(aUnit, EmptyParam); End;end;procedure TControlWord.MoveToLineFirst;var aUnit : OleVariant;begin With FWordApp Do Begin aUnit := wdLine; Selection.HomeKey(aUnit, EmptyParam); End;end;procedure TControlWord.MoveToPageEnd;var aUnit : OleVariant;begin With FWordApp Do Begin aUnit := wdStory; Selection.EndKey(aUnit, EmptyParam); End;end;procedure TControlWord.MoveToPageFirst;var aUnit : OleVariant;begin With FWordApp Do Begin aUnit := wdStory; Selection.HomeKey(aUnit, EmptyParam); End;end;procedure TControlWord.MoveToRight(Selected: Boolean; lCount: Integer);var aUnit, aExtend, aCount : OleVariant;begin With FWordApp Do Begin aUnit := wdCharacter; aExtend := wdExtend; aCount := lCount; If Selected Then Selection.MoveRight(aUnit, aCount, aExtend) Else Selection.MoveRight(aUnit, aCount, EmptyParam); End;end;procedure TControlWord.myAppQuit(Sender: TObject);begin FWordApp.Disconnect;end;function TControlWord.OpenWordFile(DocPath : String): Boolean;var FFIleName : OleVariant;begin FFileName := DocPath; FWordApp.Documents.Open(FFileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); FWordApp.Visible := True;end;procedure TControlWord.SaveDocument(DocPath: String);var aDocFileName , aDocFileFormat: OleVariant;begin aDocFileName := DocPath; aDocFileFormat := wdFormatDocument; FWordApp.ActiveDocument.SaveAs(aDocFileName, aDocFileFormat, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);end;end. 代码还在继续-个人感受 opengl画的立方体为什么总有一面不透明 dbexpress的手动连接怎么写? AutoObjcet中如何返回一个对像可以让脚本或其它语言调用? Delphi7报表问题 基本问题 excel97和2000问题.在线等待。请大家关注。up有分。 谁能送我几个图标? GIS的问题 散分 请教access violation错误 请问如何在指定时间段内 ,显示指定次数的 提示信息?
unit ControlWordS;interfaceuses Classes, Sysutils, Word97;type
TControlWord = class(TComponent)
private
{ Private declarations }
FWordApp : TWordApplication;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override; function OpenWordFile(DocPath : String) : Boolean; procedure myAppQuit(Sender: TObject);
{ 將游標移到本行第一碼 }
procedure MoveToLineFirst;
{ 將游標移到本行最後一碼 }
procedure MoveToLineEnd(Selected : Boolean);
{ 將游標移到本頁最前 }
procedure MoveToPageFirst;
{ 將游標移到本頁最後 }
procedure MoveToPageEnd;
{ 將游標向右移動N碼 }
procedure MoveToRight(Selected : Boolean; lCount : Integer);
{ 設定書籤 }
procedure AddBookMark(BookMarkName : String);
{ 移動到指定的書籤上 }
function GotoBookMark(BookMarkName : String) : Boolean;
{ 切換頁首頁尾 }
procedure ChangSeekType(ViewType : String);
{ 取得游標現在所在頁次 }
function GetNowPageNumber : Integer;
{ 存檔 }
procedure SaveDocument(DocPath : String); function FindText(KeyStr : String) : Boolean; published
{ Published declarations }
end;
implementation{ TControlWord }procedure TControlWord.AddBookMark(BookMarkName: String);
var aRange, aDefaultSorting : OleVariant;
begin
With FWordApp Do
Begin
aRange := Selection.Range;
ActiveDocument.Books.Add(BookMarkName, aRange);
aDefaultSorting := wdSortByName;
ActiveDocument.Books.DefaultSorting := aDefaultSorting;
ActiveDocument.Books.ShowHidden := True;
End;
end;procedure TControlWord.ChangSeekType(ViewType: String);
var aSeekTYpe : OleVariant;
begin
If UpperCase(ViewType) = 'PAGEFOOTER' Then
aSeekTYpe := wdSeekCurrentPageFooter
Else If UpperCase(ViewType) = 'PAGEHEADER' Then
aSeekTYpe := wdSeekCurrentPageHeader
Else aSeekTYpe := wdSeekMainDocument;
With FWordApp Do
Begin
ActiveWindow.ActivePane.View.SeekView := aSeekTYpe;
End;
end;constructor TControlWord.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FWordApp := TWordApplication.Create(Self);
FWordApp.OnQuit := myAppQuit;
end;destructor TControlWord.Destroy;
begin
FWordApp.Disconnect;
FWordApp.Free;
inherited Destroy;
end;function TControlWord.FindText(KeyStr: String): Boolean;
begin
//
end;function TControlWord.GetNowPageNumber: Integer;
var
aPageType : OleVariant;
NowPageNumber : Integer;
begin
aPageType := wdActiveEndPageNumber;
NowPageNumber := FWordApp.Selection.Information[aPageType];
Result := NowPageNumber;
end;function TControlWord.GotoBookMark(BookMarkName: String): Boolean;
var aWhat, aWhich, aCount, aName : OleVariant;
begin
with FWordApp Do
Begin
aWhat := wdGoToBook;
aName := BookMarkName;
Result := True;
If ActiveDocument.Books.Exists(aName) Then
Selection.GoTo_(aWhat, aWhich, aCount, aName)
Else Result := False;
End;
end;procedure TControlWord.MoveToLineEnd(Selected: Boolean);
var aUnit, aExtend : OleVariant;
begin
With FWordApp Do
Begin
aUnit := wdLine;
aExtend := wdExtend;
If Selected Then
Selection.EndKey(aUnit, aExtend)
Else
Selection.EndKey(aUnit, EmptyParam);
End;
end;procedure TControlWord.MoveToLineFirst;
var aUnit : OleVariant;
begin
With FWordApp Do
Begin
aUnit := wdLine;
Selection.HomeKey(aUnit, EmptyParam);
End;
end;procedure TControlWord.MoveToPageEnd;
var aUnit : OleVariant;
begin
With FWordApp Do
Begin
aUnit := wdStory;
Selection.EndKey(aUnit, EmptyParam);
End;
end;procedure TControlWord.MoveToPageFirst;
var aUnit : OleVariant;
begin
With FWordApp Do
Begin
aUnit := wdStory;
Selection.HomeKey(aUnit, EmptyParam);
End;
end;procedure TControlWord.MoveToRight(Selected: Boolean; lCount: Integer);
var
aUnit, aExtend, aCount : OleVariant;
begin
With FWordApp Do
Begin
aUnit := wdCharacter;
aExtend := wdExtend;
aCount := lCount;
If Selected Then
Selection.MoveRight(aUnit, aCount, aExtend)
Else
Selection.MoveRight(aUnit, aCount, EmptyParam);
End;
end;procedure TControlWord.myAppQuit(Sender: TObject);
begin
FWordApp.Disconnect;
end;function TControlWord.OpenWordFile(DocPath : String): Boolean;
var FFIleName : OleVariant;
begin
FFileName := DocPath;
FWordApp.Documents.Open(FFileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
FWordApp.Visible := True;
end;procedure TControlWord.SaveDocument(DocPath: String);
var
aDocFileName , aDocFileFormat: OleVariant;
begin
aDocFileName := DocPath;
aDocFileFormat := wdFormatDocument;
FWordApp.ActiveDocument.SaveAs(aDocFileName, aDocFileFormat, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;end.