我正在使用Delphi(2010),但我是PowerPoint(2010)的新手
我找到了两个使用“保持源格式”复制幻灯片的代码:
Sub test1()
Dim orig_slide, new_slide As Slide
Dim slide_range As SlideRange
Set orig_slide = ActivePresentation.Slides(2)
orig_slide.Copy
Set slide_range = ActivePresentation.Slides.Paste(6)
Set new_slide = slide_range.Item(1)
new_slide.Design = orig_slide.Design
new_slide.ColorScheme = orig_slide.ColorScheme
End Sub
Sub test2()
ActivePresentation.Slides(2).Select
ActiveWindow.Selection.Copy
ActiveWindow.View.PasteSpecial (DataType = ppPasteOLEObject)
End Sub
他们都在PowerPoint中给出了期望的结果但是在Delphi中我得到了例外:
test1,line
new_slide.Design = orig_slide.Design
异常类EOleSysError,消息“未找到成员”
test2,line
ActiveWindow.View.PasteSpecial (DataType = ppPasteOLEObject)
异常类EOleException,消息'View.PasteSpecial:无效请求。指定的数据类型不可用'
我正在使用幻灯片浏览器查看,复制和粘贴工作正常,我只是尝试添加“保持源格式化”命令。
提前致谢
答案 0 :(得分:1)
我想我找到了一个解决方案:
Delphi中的这段代码(不起作用)
var OrigSlide, NewSlide : Variant;
NewSlide.Design := OrigSlide.Design;
在右侧,Delphi似乎只接受variant_variable,它不接受variant_variable.property
左侧似乎以相反的方式工作?!?
当我用这段代码替换它时,它可以正常工作
OrigSlide := OrigSlide.Design;
NewSlide.Design := OrigSlide;
但我只能猜到原因。