P
plenilune168
Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi7写了一个程序,是用PowerPoint组件控制PowerPoint文档。其中一个功能是插入Flash组件和MediaPlayer组件。如下代码直接插入组件没有问题:
var PPP:TPowerPointPresentation
begin
……
PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject(240,180,240,180,'ShockwaveFlash.ShockwaveFlash.1','',msoFalse,'',msofalse,'',0);
PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject(240,180,240,180,'MediaPlayer.MediaPlayer.1','',msoFalse,'',msofalse,'',0);
……
end;
但是我想改变插入组件的属性值,如Flash组件的Movie属性和MediaPlayer组件的FileName,即对应Flash文件和视频文件的路径。因为这两个组件插入到PPT中若想给文件路经赋值需要在属性里面直接输入字母而不能通过文件打开对话框选择路径。所以我想在插入组件之前先出一个打开对话框OpenDialog,选择好文件后插入的Flash组件或者MediaPlayer直接就对应选择的文件(即分别给他们的Movie属性和FileName属性赋值)。
我想过两个情况,一种是插入的代码直接就把文件路径赋进去,但是 AddOLEObject 方法好像不支持:
PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject
另一种是插入组件后改变组件的属性值,AddOLEObject方法返回的Shape对象包括一个OLEFormat,我看到VB中调用组件属性直接用“OLEFormat.Object.属性”,但是Delphi中的 OLEFormat.Object_ 是一个 IDispatch 类型,我不知道如何用?
请教各位大虾这个问题如何解决?谢谢!
var SS:Shape;
begin
SS:=PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject(……);
//SS.OLEFormat.Object_ //好像要用到这个
end;
var PPP:TPowerPointPresentation
begin
……
PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject(240,180,240,180,'ShockwaveFlash.ShockwaveFlash.1','',msoFalse,'',msofalse,'',0);
PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject(240,180,240,180,'MediaPlayer.MediaPlayer.1','',msoFalse,'',msofalse,'',0);
……
end;
但是我想改变插入组件的属性值,如Flash组件的Movie属性和MediaPlayer组件的FileName,即对应Flash文件和视频文件的路径。因为这两个组件插入到PPT中若想给文件路经赋值需要在属性里面直接输入字母而不能通过文件打开对话框选择路径。所以我想在插入组件之前先出一个打开对话框OpenDialog,选择好文件后插入的Flash组件或者MediaPlayer直接就对应选择的文件(即分别给他们的Movie属性和FileName属性赋值)。
我想过两个情况,一种是插入的代码直接就把文件路径赋进去,但是 AddOLEObject 方法好像不支持:
PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject
另一种是插入组件后改变组件的属性值,AddOLEObject方法返回的Shape对象包括一个OLEFormat,我看到VB中调用组件属性直接用“OLEFormat.Object.属性”,但是Delphi中的 OLEFormat.Object_ 是一个 IDispatch 类型,我不知道如何用?
请教各位大虾这个问题如何解决?谢谢!
var SS:Shape;
begin
SS:=PPP.Windows.Item(1).Selection.SlideRange.Item(1).shapes.AddOLEObject(……);
//SS.OLEFormat.Object_ //好像要用到这个
end;