Delphi 操作Word怎么控制光标的位置
unit ControlWordS;
interface
uses 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.Bookmarks.Add(BookMarkName, aRange);
aDefaultSorting := wdSortByName;
ActiveDocument.Bookmarks.DefaultSorting := aDefaultSorting;
ActiveDocument.Bookmarks.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 := wdGoToBookmark;
aName := BookMarkName;
Result := True;
If ActiveDocument.Bookmarks.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.
Delphi 操作Word怎么控制光标的位置的更多相关文章
- android EditText控制光标的位置
利用自定义键盘,需要手动删除编辑框中的文本时,会根据光标的位置来删除字符.那么,如何来控制光标呢,android为我们提供了哪些方法,来处理光标呢? 这里提供几个自己写的方法,根据这些方法可以满足在光 ...
- textfield控制光标开始位置
// UIView *paddingView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.wi ...
- iOS-textfield控制光标开始位置
// UIView *paddingView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.wi ...
- delphi 操作 word
uses ComObj,word2000 procedure TForm1.ExportWord(); var FWord :Variant; FDoc :Variant; i,Row: ...
- Delphi 操作word 表格
var wordApp, WordDoc, WrdSelection, wrdtable: variant; strAdd: string; wdPar,wdRange:OleVariant; iCo ...
- 用DELPHI操作EXCEL Word
用DELPHI操作EXCEL 在DELPHI中显示EXCEL文件,可用以下简单代码做到.但要实用,则需进一步完善. var Form1: TForm1; EApp:variant;implemen ...
- delphi 换行操作 Word
delphi 换行操作 我将我的商用<旅行社管理系统>的 发团通知 部分奉献给您,望对您有所帮助. procedure TFrmMain.N327Click(Sender: TObject ...
- Delphi读取Word
Delphi读取Word现在关于往Word中写入数据的方法比较多,现在专门开个贴子,希望大家把自己读取Word内容的心得体会说一下,包括读取word文档中,有几个段落,如何读取第几个段落,读取有拼音的 ...
- 控制input输入框光标的位置
一:理解input, textarea元素在标准浏览器下两个属性selectionStart, selectionEnd. selectionStart: 该属性的含义是 选区开始的位置: selec ...
随机推荐
- NSString+URLEncoding.h --使用Obj-C对数据等进行URLEncoding编码
在Objective-c进行网络编程时,经常需要把数据转换成URLEncoding编码,如对+号编码后,变成%2b.这里我们给出一种实现. //NSString+URLEncoding.h #impo ...
- python之self (转)
首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的.self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数. self名称不是必须的,在python中self ...
- LintCode 字符串比较
比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是大写字母: 给出 A = "ABCD" B = "AABC", 返回 false ...
- SRAM与SDRAM的区别
http://www.cnblogs.com/spartan/archive/2011/05/06/2038747.html SDRAM SDRAM(Synchronous Dynamic Rando ...
- http怎样保持有状态?
HTTP协议的特点 HTTP协议是无状态的协议,发送的请求不记录用户的状态,不记录用户的信息.就相当于它被访问了2次,不知道是哪两人访问的,或者是一个人访问两次. 正是因为HTTP协议的这一特点,用户 ...
- Android 清除canvas 笔迹代码
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); canvas.drawLine(pointX, , event.getX(), ...
- Linux使用者管理(1)---用户账号
linux很重要的应用就是作为服务器的操作系统.服务器的作用是给多用户提供各种“服务”(可能是读服务器上的文件,或者是利用服务器进行数值计算)那么如果多用户共同拥有一台服务器,就需要对服务器上的用户进 ...
- INSERT ... ON DUPLICATE KEY UPDATE Syntax
一 mybatis中返回自动生成的id 当有时我们插入一条数据时,由于id很可能是自动生成的,如果我们想要返回这条刚插入的id怎么办呢.在mysql数据中我们可以在insert下添加一个selectK ...
- BNU OJ 33691 / LA 4817 Calculator JAVA大数
留着当个模板用,在BNU上AC,在LA上RE……可能是java的提交方式不同??? 数和运算符各开一个栈. 表达式从左到右扫一遍,将数存成大数,遇到数压在 数的栈,运算符压在 运算符的栈,每当遇到右括 ...
- PHP命名空间概念解析
1. PHP中的命名空间是什么? 什么是命名空间?“从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮 ...