Sign in Join
Wiki copytemporary

PowerpointAutomation/de: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-\
21Zurück zur [[Office Automation/de|Office Automation]].\
3-\
4-\
2+
53=Powerpoint als OleObjekt= Für die Oleautomation muss die Unit **ComObj** eingebunden werden.\
64Grundsätzlich sollte für das Arbeiten mit Powerpoint die Unit **lclproc** eingebunden werden.\
75Die Unit **lclproc** stellt die nötigen Routinen für das Umwandeln der Stringtypen (Stringcasting) bereit.\
8-\
6+
97==Speicherplatz reservieren==
108
119``` pascal
1210var
1311 varPptApp: OleVariant; // reserviert den Speicher für die Powerpointadresse
1412```
1513
16-\
1714==OleObjekt erstellen==
1815
1916``` pascal
2017begin
2118 ...
2219 try
2320 varPptApp := CreateOleObject('Powerpoint.Application'); // erstellt das Powerpointobjekt
2421 except
2522 WriteLn('MS Powerpoint kann nicht gestartet werden.'); // Fehlerbehandlung
2623 end;
2724 ...
2825end;
2926```
3027
31-\
3228==OleObjekt beenden und den Speicher freigeben==
3329
3430``` pascal
3531begin
3632 ...
3733 varPptApp.Quit;
3834 varPptApp := Unassigned;
3935 ...
4036end;
4137```
4238
43-\
4439==Powerpoint Version ermitteln==
4540
4641``` pascal
4742begin
4843 ...
4944 ShowMessage(varPptApp.Version);
5045 ...
5146end;
5247```
5348
54-\
5549==Sichtbarkeit steuern== Wenn Powerpoint während der automatisierten Erstellung einer Präsentation unsichtbar ist, dann flackert der Bildschirm nicht.\
5650
5751``` pascal
5852begin
5953 ...
6054 varPptApp.Visible := False; //macht Powerpoint unsichtbar
6155 varPptApp.Visible := True; //macht Powerpoint sichtbar
6256 ...
6357end;
6458```
6559
66-\
6760=Powerpoint Präsentation=\
6861==Speicher für die Präsentation reservieren==
6962
7063``` pascal
7164 varPptSlide: OleVariant; // reserviert den Speicher für die Präsentation
7265 strName: String;
7366```
7467
75-\
7668==neue Datei erstellen==
7769
7870``` pascal
7971begin
8072 ...
8173 varPptApp.Presentations.Add(True); // Fügt eine neue Präsentation ein
8274 ...
8375end;
8476```
8577
86-\
8778==vorhandene Datei öffnen== Um in Powerpoint eine vorhandene Präsentation zu öffnen, müssen sie den String in das UTF16-format umwandeln (casten),\
8879da die Powerpointschnittstelle nur UTF16 versteht.\
8980
9081``` pascal
9182begin
9283 ...
9384 varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt')) // Benötigt die Unit lclproc
9485
9586 // Alternative
9687 // Einer Variablen vom Typ OleVariant wird die Adresse der Prässentation übergeben
9788 varPptSlide := varPptApp.Presentations.Open(UTF8ToUTF16('D:\Arbeit\Test\TestDateien\Test.ppt'));
9889 ...
9990end;
10091```
10192
102-\
10393==Präsentation speichern==
10494
10595``` pascal
10696begin
10797 ...
10898 varPptApp.ActivePresentation.Save; // speichert die aktive Präsentation
10999 // Alternative
110100 varPptSlide.Save; // speichert die aktive Präsentation
111101 ...
112102end;
113103```
114104
115-\
116105==Präsentation steuern==
117106
118107``` pascal
119108var
120109 strName: String; // reserviert den Speicher für die den Namen der aktuellen Folie
121110```
122111
123-\
124112===Präsentation starten===
125113
126114``` pascal
127115begin
128116 ...
129117 varPptApp.ActivePresentation.SlideShowSettings.Run; // führt die aktive Präsentation aus
130118 // Alternative
131119 varPptSlide.SlideShowSettings.Run; // führt die aktive Präsentation aus
132120 ...
133121end;
134122```
135123
136-\
137124===Nächste Folie===
138125
139126``` pascal
140127begin
141128 ...
142129 varPptApp.ActivePresentation.SlideShowWindow.View.Next; // führt die nächste Folie aus
143130 // Alternative
144131 varPptSlide.SlideShowWindow.View.Next; // führt die nächste Folie aus
145132 ...
146133end;
147134```
148135
149-\
150136===vorhergehende Folie===
151137
152138``` pascal
153139begin
154140 ...
155141 varPptApp.ActivePresentation.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus
156142 // Alternative
157143 varPptSlide.SlideShowWindow.View.Previous; // führt die vorhergehende Folie aus
158144 ...
159145end;
160146```
161147
162-\
163148===geht zu Folie Nummer ...===
164149
165150``` pascal
166151begin
167152 ...
168153 varPptApp.ActivePresentation.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus
169154 // Alternative
170155 varPptSlide.SlideShowWindow.View.GoToSlide(2); // führt die Folie Nummer 2 aus
171156 ...
172157end;
173158```
174159
175-\
176160===geht zur letzten Folie===
177161
178162``` pascal
179163begin
180164 ...
181165 varPptApp.ActivePresentation.SlideShowWindow.View.Last; // führt die letzte Folie aus
182166 // Alternative
183167 varPptSlide.SlideShowWindow.View.Last; // führt die letzte Folie aus
184168 ...
185169end;
186170```
187171
188-\
189172===Name der aktuellen Folie ermitteln===
190173
191174``` pascal
192175begin
193176 ...
194177 strName:= varPptApp.ActivePresentation.SlideShowWindow.View.Slide.Name;
195178 // Alternative
196179 strName:= varPptSlide.SlideShowWindow.View.Slide.Name;
197180 ...
198181end;
199182```
200183
201184# Folien
202185
203186## Speicher reservieren
204187
205188``` pascal
206189var
207190 intZaehl: Integer; // reserviert den Speicher für die Anzahl der Folien
208191```
209192
210-\
211193==Folien zählen==
212194
213195``` pascal
214196begin
215197 ...
216198 intZaehl := varPptApp.ActivePresentation.Slides.Count; //Zählt die Folien
217199 // Alternative
218200 intZaehl := varPptSlide.Slides.Count; //Zählt die Folien
219201 ...
220202end;
221203```
222204
223-\
224205=Auszug aus den Powerpointkonstanten=
225206
226207``` pascal
227208unit uPPTConst;
228209
229210interface
230211
231212const
232213 ppSaveAsPresentation = $00000001;
233214 ppSaveAsPowerPoint7 = $00000002;
234215 ppSaveAsPowerPoint4 = $00000003;
235216 ppSaveAsPowerPoint3 = $00000004;
236217 ppSaveAsTemplate = $00000005;
237218 ppSaveAsRTF = $00000006;
238219 ppSaveAsShow = $00000007;
239220 ppSaveAsAddIn = $00000008;
240221 ppSaveAsWizard = $00000009;
241222 ppSaveAsPowerPoint4FarEast = $0000000A;
242223 ppSaveAsDefault = $0000000B;
243224
244225//Bibliothek PpSlideLayout
245226 ppLayoutBlank = 12;
246227 ppLayoutChart = 8;
247228 ppLayoutChartAndText = 6;
248229 ppLayoutClipartAndText = 10;
249230 ppLayoutClipArtAndVerticalText = 26;
250231 ppLayoutFourObjects = 24;
251232 ppLayoutLargeObject = 15;
252233 ppLayoutMediaClipAndText = 18;
253234 ppLayoutMixed = -2;
254235 ppLayoutObject = 16;
255236 ppLayoutObjectAndText = 14;
256237 ppLayoutObjectAndTwoObjects = 30;
257238 ppLayoutObjectOverText = 19;
258239 ppLayoutOrgchart = 7;
259240 ppLayoutTable = 4;
260241 ppLayoutText = 2;
261242 ppLayoutTextAndChart = 5;
262243 ppLayoutTextAndClipart = 9;
263244 ppLayoutTextAndMediaClip = 17;
264245 ppLayoutTextAndObject = 13;
265246 ppLayoutTextAndTwoObjects = 21;
266247 ppLayoutTextOverObject = 20;
267248 ppLayoutTitle = 1;
268249 ppLayoutTitleOnly = 11;
269250 ppLayoutTwoColumnText = 3;
270251 ppLayoutTwoObjects = 29;
271252 ppLayoutTwoObjectsAndObject = 31;
272253 ppLayoutTwoObjectsAndText = 22;
273254 ppLayoutTwoObjectsOverText = 23;
274255 ppLayoutVerticalText = 25;
275256 ppLayoutVerticalTitleAndText = 27;
276257 ppLayoutVerticalTitleAndTextOverChart = 28;
277258
278259 // Bibliothek MsoTriState
279260 msoCTrue = 1;
280261 msoFalse = 0;
281262 msoTriStateMixed = -2;
282263 msoTriStateToggle = -3;
283264 msoTrue = -1;
284265
285266implementation
286267
287268end.
288269```
289270
290271---
291272*From the Free Pascal wiki, page "PowerpointAutomation/de", as it stood on 2020-02-23 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history