将宏命令转化成delphi语言后出错的问题,请大家帮忙。(100分)

  • 主题发起人 主题发起人 zmoliver
  • 开始时间 开始时间
Z

zmoliver

Unregistered / Unconfirmed
GUEST, unregistred user!
我在word里的宏命令完成在文档里插入图片,并修改图片的大小。宏指令如下所示:
Sub Macro1()
Selection.InlineShapes.AddPicture FileName:="D:/photo/DSC03298.JPG", _
LinkToFile:=False, SaveWithDocument:=True
Selection.TypeBackspace
Selection.InlineShapes(1).Fill.Visible = msoFalse
Selection.InlineShapes(1).Fill.Solid
Selection.InlineShapes(1).Fill.Transparency = 0#
Selection.InlineShapes(1).Line.Weight = 0.75
Selection.InlineShapes(1).Line.Transparency = 0#
Selection.InlineShapes(1).Line.Visible = msoFalse
Selection.InlineShapes(1).LockAspectRatio = msoTrue
Selection.InlineShapes(1).Height = 283.2
Selection.InlineShapes(1).Width = 377.85
Selection.InlineShapes(1).PictureFormat.Brightness = 0.5
Selection.InlineShapes(1).PictureFormat.Contrast = 0.5
Selection.InlineShapes(1).PictureFormat.ColorType = msoPictureAutomatic
Selection.InlineShapes(1).PictureFormat.CropLeft = 0#
Selection.InlineShapes(1).PictureFormat.CropRight = 0#
Selection.InlineShapes(1).PictureFormat.CropTop = 0#
Selection.InlineShapes(1).PictureFormat.CropBottom = 0#
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub

转化到delphi中后,的部分语句为:
wordhandle.selection.inlineshapes.addpicture(filename:=edit1.Text);//此句插入图片
wordhandle.selection.typebackspace;//此句是为了将插入的图片选中
wordhandle.selection.inlineshapes(1).height:=283.3;//
wordhandle.selection.inlineshapes(1).width:=377.85;//修改长宽
上面四句中前2句运行没有问题,后面两句不能运行,错误为:inlineshapes不是方法。
不知道这个问题如何解决。

我的主要目的是向word中查入图片,然后修改一下图片的尺寸就可以了,高人有别的方法也希望不吝赐教。谢谢
 
如果是数组,delphi用方括号
 
这里不存在数组的问题,括号是将宏指令改成delphi语言后仍保留的。
这里的最大问题一个是宏指令转化成delphi语言存在问题。
第二个是宏指令转化成delphi后,APi不能识别,即出错。

我不知道是否我将宏指令转成delphi指令的这段代码有问题还是别的问题。
系统提示说inlineshapes不是一个方法!
 
怎么没有人能回答我的问题呢!!!郁闷中。。。。。
 
使用TWordApplication控件,假设对象是WordApplication1,且已启动了Word
先声明变量
var
vSaveWithDocument: OleVariant;
vEmpty: OleVariant;
vStart: OleVariant;
vRange: OleVariant;
theInlineShape : InlineShape;


WordApplication1.Connect;
vEmpty := EmptyParam;
vSaveWithDocument := True;
vStart := WordApplication1.Selection.Start;
vRange := WordApplication1.ActiveDocument.Range(vStart, vStart);
theInlineShape := WordApplication1.ActiveDocument.inlineshapes.addpicture(edit1.Text, vEmpty, vSaveWithDocument, vRange);//此句插入图片
WordApplication1.selection.typebackspace;//此句是为了将插入的图片选中
theInlineShape.height:=283.3;//
theInlineShape.width:=377.85;//修改长宽
 
我没有用wordapplication控件。我用的是ole来处理的。
现在我用了一种比较土的方法解决了。
方法就是改变word里标尺的宽度,使页面的宽度和我想要的图片的宽度一致。这样插入图片后自动就缩小成我要的宽度了。
这个方法不需要调整图片的大小了。只需要插入图片就可以。图片的长宽会根据word页面的宽度自动调整。
谢谢大家。、
如果还有好的方法,感谢提供。最好用ole来解决。不用wordapplication.
 
后退
顶部