紧急Delphi7怎么实现在自己开发的窗体中播放PPT(Office2007)
紧急求救:Delphi7如何实现在自己开发的窗体中播放PPT(Office2007)?
紧急求救:Delphi7如何实现在自己开发的窗体中播放PPT(Office2007)?
因为是用的Office2007,Delphi自带Servers组件中的PowerPointApplication已经不能使用了,目前我采用了两种方法去实现,但都不能彻底解决问题,敬请各位大虾帮忙出出主意!
方法一:使用WebBrowser控件,WebBrowser.Navigate('sample.pps');
目前无法解决的问题是:右边会出现滚动条,点击滚动条可以翻到上一页或下一页。
方法二:使用OleContainer控件,代码如下:
OleCon := TOleContainerEx.Create(nil);
OleCon.Parent := Panel1;
OleCon.Align := alClient;
OleCon.allowactivedoc := true;
OleCon.AllowInPlace := True;
OleCon.AutoActivate := aaGetFocus;
OleCon.Anchors := [akTop,akLeft,akRight,akBottom];
OleCon.Visible := True;
OleCon.SizeMode := smClip;
OleCon.CreateObjectFromFile('sample.pps',False);
OleCon.Run;
OleCon.SetFocus;
目前无法解决的问题是:只能显示PPT的第一页,没办法自动播放或点击播放PPT内容。
问题很棘手,也很急,只需要能打开PPT并播放就行,不需要做其它控制,麻烦各位帮帮手,谢谢!
------解决方案--------------------
搞了半天,发现OleContainer只能显示第一页哈。无法操作。
不知道这样可以不可以。
把POWPOINT嵌入到你的panel上面,相当于用户直接在你的程序里面玩PowPoint。
这样的话,他想怎么用就怎么用,完全就是在用Powpoint,和你程序无关联。
嵌入代码如下:
紧急求救:Delphi7如何实现在自己开发的窗体中播放PPT(Office2007)?
因为是用的Office2007,Delphi自带Servers组件中的PowerPointApplication已经不能使用了,目前我采用了两种方法去实现,但都不能彻底解决问题,敬请各位大虾帮忙出出主意!
方法一:使用WebBrowser控件,WebBrowser.Navigate('sample.pps');
目前无法解决的问题是:右边会出现滚动条,点击滚动条可以翻到上一页或下一页。
方法二:使用OleContainer控件,代码如下:
OleCon := TOleContainerEx.Create(nil);
OleCon.Parent := Panel1;
OleCon.Align := alClient;
OleCon.allowactivedoc := true;
OleCon.AllowInPlace := True;
OleCon.AutoActivate := aaGetFocus;
OleCon.Anchors := [akTop,akLeft,akRight,akBottom];
OleCon.Visible := True;
OleCon.SizeMode := smClip;
OleCon.CreateObjectFromFile('sample.pps',False);
OleCon.Run;
OleCon.SetFocus;
目前无法解决的问题是:只能显示PPT的第一页,没办法自动播放或点击播放PPT内容。
问题很棘手,也很急,只需要能打开PPT并播放就行,不需要做其它控制,麻烦各位帮帮手,谢谢!
------解决方案--------------------
搞了半天,发现OleContainer只能显示第一页哈。无法操作。
不知道这样可以不可以。
把POWPOINT嵌入到你的panel上面,相当于用户直接在你的程序里面玩PowPoint。
这样的话,他想怎么用就怎么用,完全就是在用Powpoint,和你程序无关联。
嵌入代码如下:
- Delphi(Pascal) code
procedure TForm1.button1onclick(sender:tobject); var p:olevariant; s:string; h:hwnd; begin P := createoleobject('Powerpoint.Application'); P.visible := true; s := P.caption; h := FindWindow(nil,Pchar(s)); windows.SetParent(h,Panel1.Handle); windows.SetWindowPos(h,HWND_TOP,0,0,Panel1.Width,Panel1.Height,SWP_SHOWWINDOW); end;
------解决方案--------------------
呵呵,用一个panel把WebBrowse的拖动条遮住。。。
------解决方案--------------------
遮,必须:
把WebBrowser设为alClient,
然后在WebBrowser的parent上放个Panel,设为alNone,高与WebBrowser一样,左右正好盖住WebBrowser的上下滚动条,锚位设为左不对齐,右对齐,上下则都对齐