Difference between revisions of "PowerpointAutomation/de"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
(15 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{PowerpointAutomation}}
 
{{PowerpointAutomation}}
 +
<br>
 +
Zurück zur [[Office Automation/de|Office Automation]].<br>
 
<br>
 
<br>
 
__TOC__
 
__TOC__
Line 8: Line 10:
 
Die Unit '''lclproc''' stellt die nötigen Routinen für das Umwandeln der Stringtypen (Stringcasting) bereit. <br>
 
Die Unit '''lclproc''' stellt die nötigen Routinen für das Umwandeln der Stringtypen (Stringcasting) bereit. <br>
 
<br>
 
<br>
 
+
==Speicherplatz reservieren==
=Speicherplatz reservieren=
+
<syntaxhighlight lang=pascal>
<syntaxhighlight>
 
 
var
 
var
   varPptApp: OleVariant;
+
   varPptApp: OleVariant; // reserviert den Speicher für die Powerpointadresse
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Powerpoint: OleObjekt erstellen=
+
==OleObjekt erstellen==
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   ...
 
   ...
Line 28: Line 29:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Powerpoint: OleObjekt beenden und den Speicher freigeben=
+
==OleObjekt beenden und den Speicher freigeben==
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   ...
 
   ...
Line 38: Line 39:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Powerpoint: Version ermitteln=
+
==Powerpoint Version ermitteln==
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   ...
 
   ...
Line 47: Line 48:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Powerpoint: neue Datei erstellen=
+
==Sichtbarkeit steuern==
<syntaxhighlight>
+
Wenn Powerpoint während der automatisierten Erstellung einer Präsentation unsichtbar ist, dann flackert der Bildschirm nicht.<br>
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.Visible := False;  //macht Powerpoint unsichtbar
 +
  varPptApp.Visible := True;  //macht Powerpoint sichtbar
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
=Powerpoint Präsentation=
 +
<br>
 +
==Speicher für die Präsentation reservieren==
 +
<syntaxhighlight lang=pascal>
 +
  varPptSlide: OleVariant;  // reserviert den Speicher für die Präsentation
 +
  strName: String;
 +
</syntaxhighlight>
 +
<br>
 +
==neue Datei erstellen==
 +
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   ...
 
   ...
Line 56: Line 76:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Powerpoint: vorhandene Datei öffnen=
+
==vorhandene Datei öffnen==
 
Um in Powerpoint eine vorhandene Präsentation zu öffnen, müssen sie den String in das UTF16-format umwandeln (casten),<br>
 
Um in Powerpoint eine vorhandene Präsentation zu öffnen, müssen sie den String in das UTF16-format umwandeln (casten),<br>
 
da die Powerpointschnittstelle nur UTF16 versteht.<br>
 
da die Powerpointschnittstelle nur UTF16 versteht.<br>
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt')) // Benötigt die Unit lclproc
 +
 
 +
  // Alternative
 +
  // Einer Variablen vom Typ OleVariant wird die Adresse der Prässentation übergeben
 +
  varPptSlide := varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt'));
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
==Präsentation speichern==
 +
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   ...
 
   ...
   varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt')) // Benötigt die Unit lclproc
+
   varPptApp.ActivePresentation.Save; // speichert die aktive Präsentation
 +
  // Alternative
 +
  varPptSlide.Save; // speichert die aktive Präsentation
 
   ...
 
   ...
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
 
+
==Präsentation steuern==
=Powerpoint: Sichtbarkeit steuern=
+
<syntaxhighlight lang=pascal>
Wenn Powerpoint während der Erstellung einer Präsentation unsichtbar ist, dann flackert der Bildschirm nicht.<br>
+
var
<syntaxhighlight>
+
  strName: String;        // reserviert den Speicher für die den Namen der aktuellen Folie
 +
</syntaxhighlight>
 +
<br>
 +
===Präsentation starten===
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.ActivePresentation.SlideShowSettings.Run; // führt die aktive Präsentation aus
 +
  // Alternative
 +
  varPptSlide.SlideShowSettings.Run; // führt die aktive Präsentation aus
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
===Nächste Folie===
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.ActivePresentation.SlideShowWindow.View.Next; // führt die nächste Folie aus
 +
  // Alternative
 +
  varPptSlide.SlideShowWindow.View.Next; // führt die nächste Folie aus
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
===vorhergehende Folie===
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.ActivePresentation.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus
 +
  // Alternative
 +
  varPptSlide.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
===geht zu Folie Nummer ...===
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.ActivePresentation.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus
 +
  // Alternative
 +
  varPptSlide.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
===geht zur letzten Folie===
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  varPptApp.ActivePresentation.SlideShowWindow.View.Last; // führt die letzte Folie aus
 +
  // Alternative
 +
  varPptSlide.SlideShowWindow.View.Last; // führt die letzte Folie aus
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
===Name der aktuellen Folie ermitteln===
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  ...
 +
  strName:= varPptApp.ActivePresentation.SlideShowWindow.View.Slide.Name;
 +
  // Alternative
 +
  strName:= varPptSlide.SlideShowWindow.View.Slide.Name;
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
=Folien=
 +
==Speicher reservieren==
 +
<syntaxhighlight lang=pascal>
 +
var
 +
  intZaehl: Integer;        // reserviert den Speicher für die Anzahl der Folien
 +
</syntaxhighlight>
 +
<br>
 +
==Folien zählen==
 +
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   ...
 
   ...
   varPptApp.Visible := False;  //macht Powerpoint unsichtbar
+
   intZaehl := varPptApp.ActivePresentation.Slides.Count;  //Zählt die Folien
   varPptApp.Visible := True;   //macht Powerpoint sichtbar
+
   // Alternative
 +
  intZaehl := varPptSlide.Slides.Count; //Zählt die Folien
 
   ...
 
   ...
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
<br>
 
=Auszug aus den Powerpointkonstanten=
 
=Auszug aus den Powerpointkonstanten=
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
unit uPPTConst;
 
unit uPPTConst;
  
Line 142: Line 255:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
<br>
 
--[[User:Olaf|Olaf]] 16:39, 27 September 2012 (UTC)
 
[[Category:Tutorials/de]]
 

Latest revision as of 07:51, 23 February 2020

Deutsch (de)

Zurück zur Office Automation.


Powerpoint als OleObjekt

Für die Oleautomation muss die Unit ComObj eingebunden werden.
Grundsätzlich sollte für das Arbeiten mit Powerpoint die Unit lclproc eingebunden werden.
Die Unit lclproc stellt die nötigen Routinen für das Umwandeln der Stringtypen (Stringcasting) bereit.

Speicherplatz reservieren

var
  varPptApp: OleVariant;  // reserviert den Speicher für die Powerpointadresse


OleObjekt erstellen

begin
  ...
  try
    varPptApp := CreateOleObject('Powerpoint.Application'); // erstellt das Powerpointobjekt
  except
    WriteLn('MS Powerpoint kann nicht gestartet werden.'); // Fehlerbehandlung
  end;
  ...
end;


OleObjekt beenden und den Speicher freigeben

begin
  ...
  varPptApp.Quit;
  varPptApp := Unassigned;
  ...
end;


Powerpoint Version ermitteln

begin
  ...
  ShowMessage(varPptApp.Version);
  ...
end;


Sichtbarkeit steuern

Wenn Powerpoint während der automatisierten Erstellung einer Präsentation unsichtbar ist, dann flackert der Bildschirm nicht.

begin
  ...
  varPptApp.Visible := False;  //macht Powerpoint unsichtbar
  varPptApp.Visible := True;   //macht Powerpoint sichtbar
  ...
end;


Powerpoint Präsentation


Speicher für die Präsentation reservieren

  varPptSlide: OleVariant;  // reserviert den Speicher für die Präsentation
  strName: String;


neue Datei erstellen

begin
  ...
  varPptApp.Presentations.Add(True);  // Fügt eine neue Präsentation ein
  ...
end;


vorhandene Datei öffnen

Um in Powerpoint eine vorhandene Präsentation zu öffnen, müssen sie den String in das UTF16-format umwandeln (casten),
da die Powerpointschnittstelle nur UTF16 versteht.

begin
  ...
  varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt')) // Benötigt die Unit lclproc

  // Alternative
  // Einer Variablen vom Typ OleVariant wird die Adresse der Prässentation übergeben
  varPptSlide := varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt'));
  ...
end;


Präsentation speichern

begin
  ...
  varPptApp.ActivePresentation.Save; // speichert die aktive Präsentation
  // Alternative
  varPptSlide.Save; // speichert die aktive Präsentation
  ...
end;


Präsentation steuern

var
  strName: String;        // reserviert den Speicher für die den Namen der aktuellen Folie


Präsentation starten

begin
  ...
  varPptApp.ActivePresentation.SlideShowSettings.Run; // führt die aktive Präsentation aus
  // Alternative
  varPptSlide.SlideShowSettings.Run; // führt die aktive Präsentation aus
  ...
end;


Nächste Folie

begin
  ...
  varPptApp.ActivePresentation.SlideShowWindow.View.Next; // führt die nächste Folie aus
  // Alternative
  varPptSlide.SlideShowWindow.View.Next; // führt die nächste Folie aus
  ...
end;


vorhergehende Folie

begin
  ...
  varPptApp.ActivePresentation.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus
  // Alternative
  varPptSlide.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus
  ...
end;


geht zu Folie Nummer ...

begin
  ...
  varPptApp.ActivePresentation.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus
  // Alternative
  varPptSlide.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus
  ...
end;


geht zur letzten Folie

begin
  ...
  varPptApp.ActivePresentation.SlideShowWindow.View.Last; // führt die letzte Folie aus
  // Alternative
  varPptSlide.SlideShowWindow.View.Last; // führt die letzte Folie aus
  ...
end;


Name der aktuellen Folie ermitteln

begin
  ...
  strName:= varPptApp.ActivePresentation.SlideShowWindow.View.Slide.Name;
  // Alternative
  strName:= varPptSlide.SlideShowWindow.View.Slide.Name;
  ...
end;

Folien

Speicher reservieren

var
  intZaehl: Integer;        // reserviert den Speicher für die Anzahl der Folien


Folien zählen

begin
  ...
  intZaehl := varPptApp.ActivePresentation.Slides.Count;  //Zählt die Folien
  // Alternative
  intZaehl := varPptSlide.Slides.Count; //Zählt die Folien
  ...
end;


Auszug aus den Powerpointkonstanten

unit uPPTConst;

interface

const
  ppSaveAsPresentation = $00000001;
  ppSaveAsPowerPoint7 = $00000002;
  ppSaveAsPowerPoint4 = $00000003;
  ppSaveAsPowerPoint3 = $00000004;
  ppSaveAsTemplate = $00000005;
  ppSaveAsRTF = $00000006;
  ppSaveAsShow = $00000007;
  ppSaveAsAddIn = $00000008;
  ppSaveAsWizard = $00000009;
  ppSaveAsPowerPoint4FarEast = $0000000A;
  ppSaveAsDefault = $0000000B;

//Bibliothek PpSlideLayout
  ppLayoutBlank = 12;
  ppLayoutChart = 8;
  ppLayoutChartAndText = 6;
  ppLayoutClipartAndText = 10;
  ppLayoutClipArtAndVerticalText = 26;
  ppLayoutFourObjects = 24;
  ppLayoutLargeObject = 15;
  ppLayoutMediaClipAndText = 18;
  ppLayoutMixed = -2;
  ppLayoutObject = 16;
  ppLayoutObjectAndText = 14;
  ppLayoutObjectAndTwoObjects = 30;
  ppLayoutObjectOverText = 19;
  ppLayoutOrgchart = 7;
  ppLayoutTable = 4;
  ppLayoutText = 2;
  ppLayoutTextAndChart = 5;
  ppLayoutTextAndClipart = 9;
  ppLayoutTextAndMediaClip = 17;
  ppLayoutTextAndObject = 13;
  ppLayoutTextAndTwoObjects = 21;
  ppLayoutTextOverObject = 20;
  ppLayoutTitle = 1;
  ppLayoutTitleOnly = 11;
  ppLayoutTwoColumnText = 3;
  ppLayoutTwoObjects = 29;
  ppLayoutTwoObjectsAndObject = 31;
  ppLayoutTwoObjectsAndText = 22;
  ppLayoutTwoObjectsOverText = 23;
  ppLayoutVerticalText = 25;
  ppLayoutVerticalTitleAndText = 27;
  ppLayoutVerticalTitleAndTextOverChart = 28;

  // Bibliothek MsoTriState
  msoCTrue = 1;
  msoFalse = 0;
  msoTriStateMixed = -2;
  msoTriStateToggle = -3;
  msoTrue = -1;

implementation

end.