Hallo,
so ganz passt die Frage nicht in dieses Forum, ich versuche es.
Ich habe ein Programm (von mir in Delphi 7), dass eine Grafik als CGM (das ist ein Vektorformat) erzeugt. Mit Klick auf einen Button wird der Name der angelgten Graphik-Datei an Powerpoint geschickt und dort in ein leeres Blatt eingefügt, so dass ich sie mit allen Möglichkeiten bearbeiten kann, also auch z. B. mit "Gruppe auflösen" in ihre einzelen Bestandteile zerlegen kann.
Powerpoint 2013 kann CGM wegen möglicher Sicherheitslücken nur noch mit speziellen Settings in der Registry importieren. Deshalb erzeuge ich jetzt EMF Dateien (die auch viel strukturierter sind als CGM).
Das Einfügen per Befehl von Powerpoint aus geht bestens, aber es geht nicht über OLE. Da sind die Befehle ja praktisch Visual Basic, da kenne ich mich nicht mit aus. Bisher habe ich einfach bei den Microsoft-Programmen die Funktion "Makro aufzeichen" genutzt, meine Befehle per Hand gemacht, dann hatte ich die ganzen VB-Befehle, die ich brauchte. Leider gibt es bei Powerpoint 2013 diese Funktion nicht mehr, nun bin ich hilflos.
Vielleicht hat ja jemand einen Tipp, warum der folgende seit etwa Powerpoint 2000 (für CGM) bewährte Delphi-Code jetzt bei Powerpoint 2013 für EMF zu der Fehlermeldung von Powerpoint "Fehler beim Importieren der Datei" kommt. Über das Menü von Powerpoint "Einfügen/Bilder" geht es einwandfrei.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| BEGIN ppt := CreateOleObject('POWERPOINT.Application'); ppt.visible := true; ppt.Presentations.Add(true); ppt.ActiveWindow.View.GotoSlide(ppt.ActivePresentation.Slides.Add(1, ppLayoutBlank).SlideIndex);
slidebreite := ppt.ActivePresentation.pageSetup.Slidewidth - 3; slidehoehe := ppt.ActivePresentation.pageSetup.Slideheight - 3;
ppt.ActiveWindow.Selection.SlideRange.Shapes.AddPicture(Filename.Text, false, true, 1, 1, slidebreite, slidehoehe).select; ppt.ActivePresentation.SlideShowSettings.Run; ppt := unassigned; END; |
Grüße GuaAck