DELPHI可否播放POWERPOINT幻灯(50分)

  • 主题发起人 主题发起人 qdxml
  • 开始时间 开始时间
Q

qdxml

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个单位管理信息系统,设有一个单位简介按扭并做了一个POWERPOINT幻灯片,现想将这个幻灯片加入管理信息系统,只要点击简介按扭就可播放POWERPOINT幻灯片,如何实现,请高手多多相助。
 
转贴。

bluerain (2001-12-15 14:40:00)
在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;
 
谢谢liyinwei,我先试试。
 
我刚试过,可能我的POWERPOINTAPPLICATION、POWERPOINTPRESENTION设置有问题,调试时出现‘undeclared identifier:msotrue''undeclared identifier:msofalse'错误,不知何因,该怎样设置以上两组件,谢谢。
 
需要引用单元:office2000
 
请问如何引用?能否将代码告我?谢谢。
 
晕。
在你那个文件顶部的
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Grids, Buttons, DBCtrls, DBGrids, ExtCtrls,
ActnList,Office2000;
___________
在 uses 这里加上 Office2000就行了
 
不用这麽麻烦吧
只需一句就可以了
shellexecute(0,'open',pchar(location),nil,nil,sw_shownormal);//location为ppt文件的物理路径
当然需要在uses中加上ShellApi
 
真晕了,这真是不晕不知道,一晕吓一跳,多谢liyinwei,happycyp两位高手,问题解决了,以后还得多向二位请教,不妨发个邮件给我:sdqdxml@126.com,有时间到青岛玩,同时把分奉送,再一次感谢。
 
谢谢huanghq123指点,所供方法我也试了一次,不运行,不知何故。
 
后退
顶部