首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于TWordDocument 控制的有关问题 光标或叫插入点的控制

2012-02-12 
关于TWordDocument 控制的问题 光标或叫插入点的控制 1、在WordDocument中插入一对象后,该对象则自然为被选

关于TWordDocument 控制的问题 光标或叫插入点的控制

1、在WordDocument中插入一对象后,该对象则自然为被选择状态,添加或插入其他对象,前一对象被冲掉。
2、使用
      WordDoc-> Range(EmptyParam,EmptyParam)
                      -> InsertAfter(StringToOleStr(string));
     
      和
      WordDocument-> Sentences-> Last-> Paste();
      以及
      WordDocument-> GoTo(what,whitch,count,name);
都不改变光标位置,光标始终在文件起始位置。
请问如何去掉选择状态,类似手动编辑文档时输入光标控制键后选择状态消失?
烦请各位高手帮忙
先行谢谢各位



[解决办法]
看到得
用Delphi合并Word表格中单元格

//合并Word 表格中单元格
procedure mergeWordCell;
var WordApp: TWordApplication;
WordDoc: TWordDocument;
DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant;
i,iRow,iCol:integer;
myCell:Cell;
myRow:Row;
begin
memo1.Lines.Clear ;

// ===== 创建对象 =====
if not Assigned(WordApp) then
begin
WordApp:= TWordApplication.Create(nil);
WordApp.Visible := false;
end;
if not Assigned(WordDoc) then
WordDoc:= TWordDocument.Create(nil);
try
DocInx:=1;
oFileName := 'd: est.doc ';
oReadOnly:=true;
CfCversions := EmptyParam;
AddToRctFiles:= EmptyParam;
PswDocument:= EmptyParam;
PswTemplate:= EmptyParam;
oRevert:= EmptyParam;
WPswDocument:= EmptyParam;
WPswTemplate:= EmptyParam;
oFormat:= EmptyParam;
// ===== 打开文件 =====
WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles,
PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat);
// ===== 关联文件 =====
WordDoc.ConnectTo(WordApp.Documents.Item(DocInx));


//合并第一、二列
iStart:=WordDoc.Tables.Item(i).Cell(1,1).Range.Start;
myCol:= WordDoc.Tables.Item(i).Columns.Item(2);
iEnd:=myCol.Cells.Item(myCol.Cells.Count).Range.End_;
myRange:=WordDoc.Range;
myRange.Start:=iStart;
myRange.End_ :=iEnd;
myRange.Cells.Merge;

finally
if Assigned(WordDoc) then // ===== 关闭文件 =====
begin
WordDoc.Close;
WordDoc.Disconnect;
WordDoc.Destroy;
WordDoc := nil;
end;
if Assigned(WordApp) then // ===== 关闭Word =====
begin
WordApp.Quit;
WordApp.Disconnect;
WordApp.Destroy;
WordApp := nil;
end;
end;
end;

http://blog.csdn.net/xzknet/archive/2006/09/14/1218096.aspx

希望对你优帮助
[解决办法]
http://blog.csdn.net/moeryang/archive/2004/06/24/25158.aspx

http://blog.csdn.net/simonhehe/archive/2007/02/12/1508688.aspx

http://blog.csdn.net/xzknet/archive/2006/09/14/1218096.aspx

http://blog.csdn.net/neowang/archive/2004/10/08/127522.aspx
[解决办法]
这是增加一行的例子:
WordDoc-> Paragraphs-> Add();
int nParagraphs = WordDoc-> Paragraphs-> get_Count() - 1;
WordDoc-> Paragraphs-> Item( Variant( nParagraphs ) )-> Range-> set_Text( WideString( "hello world.\n " ) );

热点排行