如何在自己程序窗口中播放ppt?(急用,up 者有分)(200分)

  • 主题发起人 主题发起人 njcw666
  • 开始时间 开始时间
N

njcw666

Unregistered / Unconfirmed
GUEST, unregistred user!
初次涉及这一方面请高手指点,使用什么控件及什么方法,过程,谢谢!
 
请详细一点,谢谢
 
在server栏中有PowerPointApplication1
 
用OleContainer把ppt调到自己的程序中
或在server面板中找合适的控件吧
 
在delphi6下用Server中的 TPowerPointApplication和TPowerPointPresentation,可以
对PowerPoint进行操作.当然你也可以用CreateOleObject('PowerPoint.application')对
PowerPoint进行操作.

下面是一段试验代码,其中
pptA: TPowerPointApplication;
pptP: TPowerPointPresentation;
另外两个对象是
ssSet: SlideShowSettings; 用于设置幻灯片的放映属性
ssWin: SlideShowWindow; 用于播放幻灯片的控制
ssWin有一个成员对象View可以控制幻灯片放映First,Next,Previous,Last,以及停止
放映Exit,这样的话就可以控制循环播放次数了.
========================================================
var
ssSet: SlideShowSettings;
ssWin: SlideShowWindow;

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
pptA := TPowerPointApplication.Create(self);
pptA.Visible := msoTrue;
PPtP.ConnectTo(pptA.Presentations.Open('e:/sy/study/sample/test.ppt', msoFalse, msoFalse, msoTrue));
ssSet := PPtP.SlideShowSettings;
ssSet.LoopUntilStopped := msoFalse;
ssSet.ShowType := ppShowTypeSpeaker;
ssSet.Run;
ssWin := PPtP.SlideShowWindow;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ssWin.View.Next;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ssWin.View.Exit;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
pptA.Disconnect;
pptA.Quit;
if assigned(pptA) then pptA.Free;
except
showmessage('PowerPoint has already closed!');
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
try
pptA.Disconnect;
pptA.Quit;
if assigned(pptA) then pptA.Free;
except
showmessage('PowerPoint has already closed!');
end;
end;

 
to aolo:
pptA: TPowerPointApplication;
pptP: TPowerPointPresentation;
在何处声明?
msoTrue 编译是提示[Error] ppt.pas(45): Undeclared identifier: 'msoTrue'
请给出一个完整的代码好吗,多谢
 
uses
office2000;

另一方法
uses comobj;

var
pptapp : variant;

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
pptApp := CreateOleObject('PowerPoint.Application');
pptApp.Presentations.Open('F:/Programs/Test/OLE/PowerPoint/演示文稿1.ppt',False,False,False);
pptApp.Presentations.Item(1).SlideShowSettings.Run;
end;

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
pptApp.quit;
pptapp := unassigned;
end;
 
to :realLearning
我希望在我的窗口中实现,怎么做,请指教!
 
我的意思是在自己的窗口中播放,请指点!
 
这个问题我也关注了很久,始终不得其解,遗憾啊。
要是平时,我也会给你推荐上面的方法的。正解。

看你急,就传你一个糊弄人的办法。在FORM上放一个浏览器的控件,直接调用就可以了。
唉,都是让客户给逼的,我去年糊弄了一个。惭愧啊!!!
 
哈哈,人就怕被逼!
研究研究aolo的代码
 
to gsh2000
请告诉我,我的出错信息是什么意思,谢谢
 
to gsh2000
在 uses 中加 office2000 可以通过编译,但是运行的话就错误,我使用的
delphi 7 它的vcl是PowerPointXP,我的电脑上装的是office2000,能告诉我一下原因吗
,程序出错前打开了powerpoint 2000,请指教?
 
这取决与您安装 D7 时的选择。
⊙ office XP
○ office 2000
○ office 97
 
to reallearning :
程序在运行时报rpc占位程序版本不兼容,为什么?
 
to 常常
什么意思,能具体点吗?
 
多人接受答案了。
 
后退
顶部