ole(30分)

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

nsj

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中如何控制powerpoint文档;
如控制它的循环播放次数.
 
在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;
 
bluerain
我能不能设置幻灯片的格式及文字内容。
 
可以,用TPowerPointSlide.
它有一个成员Shapes,你去试一下,有不少编辑的功能.
同时还要结合TPowerPointApplication进行操作,例如
pptA.ActiveWindow.Selection.TextRange.Text := 'add by programmer';

不过在程序里编辑幻灯片实在太麻烦了.我其实也是现学现卖,呵呵,主要是看
PowerPoint的宏代码学习的.
如果你需要,我把Delphi代码寄给你.
 
那太好了,真是感激不尽;
我的信箱是cqwjx@163.com
 
具体的说详细点
 
给我也发一份好吗?
laj001@126.COM
 
如果不用server里的那些控件应该怎么办啊?
 
to bluerain
能不能也给我发一份?panyingpan@163.com还有,如果不用server里的那些控件,应该如何操作powerpoint呢?
 
后退
顶部