高分求助:word文本框和图形的内容如何显示在我的delphi程序中 ( 积分: 70 )

  • 主题发起人 主题发起人 meyeth2004
  • 开始时间 开始时间
M

meyeth2004

Unregistered / Unconfirmed
GUEST, unregistred user!
最近老弟在试做delphi控制word,遇到一难题,求各位高手帮忙,谢谢啊:
如何把word中的文本框内容(字体格式也不变)显示在自己程序中,delphi该用哪个控件才能显示其内容.比如,我有一个word文档名为ex.doc,其中有图形,也有文本框,我该如何读出其内的图形我文本框呢.如我想读出第10段的一个文本框,读出第15段的图片呢?
请高手们不吝指教,一定要帮帮老弟呀!
 
最近老弟在试做delphi控制word,遇到一难题,求各位高手帮忙,谢谢啊:
如何把word中的文本框内容(字体格式也不变)显示在自己程序中,delphi该用哪个控件才能显示其内容.比如,我有一个word文档名为ex.doc,其中有图形,也有文本框,我该如何读出其内的图形我文本框呢.如我想读出第10段的一个文本框,读出第15段的图片呢?
请高手们不吝指教,一定要帮帮老弟呀!
 
使用OLEContainer控件结合WordApplication就能完全控制Word文档,很容易操作的,看看Office的帮助文档就知道了,网上也大把的代码
 
谢谢你的热心,我正是用ole进行控制的,对于文本基本可完全控制其读写,可不知如何控制word文档的图形和文本框,烦请老兄给点例子或关键代码.
 
没有人想要这个分了吗,高手们!
 
麻烦啊麻烦 你直接用webbrowser打开就行了
 
比较麻烦,需要自己慢慢研究


文本相对容易些,在论坛里面可以找到很多代码,还有个简单办法就是你用Word的宏环境生成对应的VBA代码,然后移植过来
首先你既然说了第几段,那么这个段的属性,如果没理解错的话应该是

Paragraphs 集合对象
请参阅 属性 方法 事件 特性
多种对象
Paragraphs (Paragraph)
多种对象

由选定内容、范围或文档中的 Paragraph 对象组成的集合。
---------------------------
使用 Paragraphs 集合
可用 Paragraphs 属性返回 Paragraphs 集合。下例将所选内容的段落格式设为右对齐、双倍行距。

With Selection.Paragraphs
.Alignment = wdAlignParagraphRight
.LineSpacingRule = wdLineSpaceDouble
End With
可用 Add、InsertParagraph、InsertParagraphAfter 或 InsertParagraphBefore 方法在文档中添加一个新的段落。下例在选定内容的第一段前添加一个新的段落。

Selection.Paragraphs.Add Range:=Selection.Paragraphs(1).Range
也可用下例在所选内容的第一段前添加一个段落。

Selection.Paragraphs(1).Range.InsertParagraphBefore
可用 Paragraphs(index) 返回一个 Paragraph 对象,其中 index 为索引号。下例将活动文档的第一段右对齐。

ActiveDocument.Paragraphs(1).Alignment = wdAlignParagraphRight
说明
文档中该集合的 Count 属性仅返回正文部分的项目数。使用集合的 Range 对象可计算其他部分的项目数。
------------------------
但是我想楼主是不是要段落的意思,自己去测了,然后找到段以后就知道这个段里面的内容,图形好像是用下面的方法,



PictureFormat 对象
请参阅 属性 方法 事件 特性
Shapes (Shape)
PictureFormat

包含应用于图片和 OLE 对象的属性和方法。LinkFormat 对象仅包含应用于已链接的 OLE 对象的属性和方法。OLEFormat 对象包含应用于已链接和非链接的 OLE 对象的属性和方法。

使用 PictureFormat 对象
用 PictureFormat 属性可以返回一个 PictureFormat 对象。下例设置活动文档中图形 1 的亮度、对比度和颜色转换方式,并将该图形的底边裁去 18 磅。为使本示例能运行,图形 1 必须是一张图片或一个 OLE 对象。

With ActiveDocument.Shapes(1).PictureFormat
.Brightness = 0.3
.Contrast = 0.7
.ColorType = msoPictureGrayScale
.CropBottom = 18
End With

-----------------------------
可能自己花时间看VBA帮助的时间还长些
 
谢谢啊,谁还有更好的答案哟
 
例如:用OLE打开一个word
在form1里放入一个OLE,双击选择word,设置OLE的autoactivate属性为aaGetFocus
添加一个菜单MainMenu1
如果要打开一个word则:
procedure TForm1.FormShow(Sender: TObject);
begin
application.ProcessMessages;
OleContainer1.CreateObjectFromFile('d:/999.doc',false);
end;
这时运行就可以看到word的内容在你的delphi里了,有菜单,可以编辑
然后可以用OLE等代码进行操作word
 
更好的答案?

用webbrowser直接打开word文档的效果你不满意吗?
 
文本框和图片都不是按段来算的,它们有自己的序列,比如文本框1、2等等,图形对象是shape不是picture,按你的要求不如自己构造一个新的word文档再显示,显示时可以控制word不显示菜单、工具条等。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部