Most of the rest is VBA in Delphi dialect.
FullView.Items.Clear;
FirstNode:=FullView.Items.AddFirst(NIL,DM_DB.T_ppt['FileName']);
AktPres:=FirstNode;
for PresCnt:=1 to PptApp.Presentations.Count do
begin
PI:=TPresentationInfo.create;
PI.FullName:=PptApp.Presentations.item(PresCnt).FullName;
if PresCnt = 1 then
AktPres:=FullView.Items.AddChildObject(AktPres,PI.FullName,PI)
else
AktPres:=FullView.Items.AddObject(AktPres,PI.FullName,PI);
AktSlide:=AktPres;
for SldCnt:=1 to PptApp.Presentations.item(PresCnt).Slides.Count do
begin
PptSlide.ConnectTo(PptApp.Presentations.item(PresCnt).Slides.Item(SldCnt));
SI:=TSlideInfo.Create;
SI.SlideIndex:=PptSlide.SlideIndex;
SI.Name:=PptSlide.Name;
if PptSlide.Shapes.HasTitle = msoTrue then
SI.Titel:=PptSlide.Shapes.Title.TextFrame.TextRange.Text;
if SldCnt = 1 then
AktSlide:=FullView.Items.AddChildObject(AktSlide,PptSlide.Name,SI)
else
AktSlide:=FullView.Items.AddObject(AktSlide,PptSlide.Name,SI);
AktShape:=AktSlide;
if PptSlide.Shapes.HasTitle = msotrue then
AktShape:=FullView.Items.AddChild(AktShape,PptSlide.Shapes.Title.TextFrame.TextRange.Text)
else
AktShape:=FullView.Items.AddChild(AktShape,'Kein Titel');
for shpCnt:=1 to PptSlide.Shapes.Count do
begin
HI:=TShapeInfo.Create;
HI.Name:=PptSlide.Shapes.item(shpCnt).Name;
HI.ShapeTyp:=PptSlide.Shapes.item(shpCnt).type_;
HI.TypName:='';
if PptSlide.Shapes.item(shpCnt).HasTextFrame = msoTrue then
HI.Text:=PptSlide.Shapes.item(shpCnt).TextFrame.TextRange.Text
else
HI.Text:='';
AktShape:=FullView.Items.AddObject(AktShape,PptSlide.Shapes.item(shpCnt).Name,HI);
if PptSlide.Shapes.Item(shpCnt).type_ = msoGroup then
begin
AktGrp:=AktShape;
Next line raises the exception when it comes to the specific slide
for grpCnt:=1 to
PptSlide.Shapes.item(shpCnt).GroupItems.Count do
begin
HI:=TShapeInfo.Create;
HI.Name:=PptSlide.Shapes.item(shpCnt).GroupItems.item(grpCnt).Name;
HI.ShapeTyp:=PptSlide.Shapes.item(shpCnt).GroupItems.item(grpCnt).type_;
HI.TypName:='';
if
PptSlide.Shapes.item(shpCnt).GroupItems.Item(grpCnt).HasTextFrame = msoTrue
then
HI.Text:=PptSlide.Shapes.item(shpCnt).GroupItems.item(grpCnt).TextFrame.TextRange.Text
else
HI.Text:='';
if grpCnt = 1 then
AktGrp:=FullView.Items.AddChildObject(AktGrp,PptSlide.Shapes.item(shpCnt).GroupItems.item(grpCnt).Name,HI)
else
AktGrp:=FullView.Items.AddObject(AktGrp,PptSlide.Shapes.item(shpCnt).GroupItems.item(grpCnt).Name,HI);
end;
end;
end;
end;
end;