Difference between revisions of "PowerpointAutomation/de"
From Lazarus wiki
Jump to navigationJump to searchm (Fixed syntax highlighting) |
|||
(6 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> | + | <syntaxhighlight lang=pascal> |
var | var | ||
varPptApp: OleVariant; // reserviert den Speicher für die Powerpointadresse | varPptApp: OleVariant; // reserviert den Speicher für die Powerpointadresse | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
− | |||
==OleObjekt erstellen== | ==OleObjekt erstellen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 30: | Line 30: | ||
<br> | <br> | ||
==OleObjekt beenden und den Speicher freigeben== | ==OleObjekt beenden und den Speicher freigeben== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 40: | Line 40: | ||
<br> | <br> | ||
==Powerpoint Version ermitteln== | ==Powerpoint Version ermitteln== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 50: | Line 50: | ||
==Sichtbarkeit steuern== | ==Sichtbarkeit steuern== | ||
Wenn Powerpoint während der automatisierten Erstellung einer Präsentation unsichtbar ist, dann flackert der Bildschirm nicht.<br> | Wenn Powerpoint während der automatisierten Erstellung einer Präsentation unsichtbar ist, dann flackert der Bildschirm nicht.<br> | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 62: | Line 62: | ||
<br> | <br> | ||
==Speicher für die Präsentation reservieren== | ==Speicher für die Präsentation reservieren== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
varPptSlide: OleVariant; // reserviert den Speicher für die Präsentation | varPptSlide: OleVariant; // reserviert den Speicher für die Präsentation | ||
strName: String; | strName: String; | ||
Line 68: | Line 68: | ||
<br> | <br> | ||
==neue Datei erstellen== | ==neue Datei erstellen== | ||
− | <syntaxhighlight | + | <syntaxhighlight lang=pascal> |
− | |||
begin | begin | ||
... | ... | ||
Line 80: | Line 79: | ||
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 | begin | ||
... | ... | ||
Line 93: | Line 92: | ||
<br> | <br> | ||
==Präsentation speichern== | ==Präsentation speichern== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 104: | Line 103: | ||
<br> | <br> | ||
==Präsentation steuern== | ==Präsentation steuern== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
var | var | ||
strName: String; // reserviert den Speicher für die den Namen der aktuellen Folie | strName: String; // reserviert den Speicher für die den Namen der aktuellen Folie | ||
Line 110: | Line 109: | ||
<br> | <br> | ||
===Präsentation starten=== | ===Präsentation starten=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
− | varPptApp.ActivePresentation.SlideShowSettings.Run; // führt die aktive Präsentation aus | + | varPptApp.ActivePresentation.SlideShowSettings.Run; // führt die aktive Präsentation aus |
− | // Alternative | + | // Alternative |
− | varPptSlide.SlideShowSettings.Run; // führt die aktive Präsentation aus | + | varPptSlide.SlideShowSettings.Run; // führt die aktive Präsentation aus |
+ | ... | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
<br> | <br> | ||
===Nächste Folie=== | ===Nächste Folie=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 129: | Line 131: | ||
<br> | <br> | ||
===vorhergehende Folie=== | ===vorhergehende Folie=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 135: | Line 137: | ||
// Alternative | // Alternative | ||
varPptSlide.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus | varPptSlide.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus | ||
+ | ... | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
<br> | <br> | ||
===geht zu Folie Nummer ...=== | ===geht zu Folie Nummer ...=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 143: | Line 148: | ||
// Alternative | // Alternative | ||
varPptSlide.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus | varPptSlide.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus | ||
+ | ... | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
<br> | <br> | ||
===geht zur letzten Folie=== | ===geht zur letzten Folie=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 156: | Line 164: | ||
<br> | <br> | ||
===Name der aktuellen Folie ermitteln=== | ===Name der aktuellen Folie ermitteln=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 165: | Line 173: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=Folien= | =Folien= | ||
==Speicher reservieren== | ==Speicher reservieren== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
var | var | ||
intZaehl: Integer; // reserviert den Speicher für die Anzahl der Folien | intZaehl: Integer; // reserviert den Speicher für die Anzahl der Folien | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
− | |||
==Folien zählen== | ==Folien zählen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 185: | Line 191: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
− | |||
=Auszug aus den Powerpointkonstanten= | =Auszug aus den Powerpointkonstanten= | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
unit uPPTConst; | unit uPPTConst; | ||
Line 250: | Line 255: | ||
end. | end. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 08: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.