Entwickler-Ecke

Sonstiges (Delphi) - Power-Point steuern


kuba - Mi 10.05.06 16:03
Titel: Power-Point steuern
Hoffentlich kann mir einer weiterhelfen.
Ich soll aus meinem Delphi-Programm Powerpoint öffnen und eine Excel-Präsentation in die Power-Point-Präsentation einbauen.

Ich habe vorher noch nie ein Office-Programm mit Delphi gesteuert. Ich bin auch sehr enttäuscht vom Internet. Ich habe kaum was Brauchbares gefunden was Powerpoint angeht. Für Excel und Word findet man schon mehr brauchbare Informationen. (Vielleicht war ich auch zu blöd zum suchen).
Kennt jemand gute Links?

Also zu meinem Problem. Das Öffnen der Präsentation klappt schon wunderbar. Nur habe ich es nicht gebacken bekommen ein Objekt einzufügen.

Hier mein Code

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
procedure TForm1.Button1Click(Sender: TObject);
var
  PowerPoint  : Variant;
  Link     : OleVariant;
begin
  try
    PowerPoint := GetActiveOleObject('PowerPoint.Application');
  except
    PowerPoint := CreateOleObject('PowerPoint.Application');
  end;
  PowerPoint.Visible := True;

//Powerpoint-Präsentation öffnen
  PowerPoint.Presentations.Add(True);

//Neues Blatt einfügen
  Powerpoint.ActivePresentation.slides.Add(Index:=1, Layout:=ppLayoutTitle).Select;

//Neues Blatt soll leer sein
  Powerpoint.ActiveWindow.Selection.SlideRange.Layout := ppLayoutBlank;

//Klappe an der Seite schließen
  Powerpoint.Application.CommandBars('Task Pane').Visible := False;

//Neues Objekt einfügen --- das funktioniert nicht!!!!!!!!!!

  Powerpoint.ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120, Top:=110, Width:=480, Height:=320, FileName:='C:\Dokumente und Einstellungen\...\Desktop\Test3.xls',Link := False).Select;


{Folgende Fehlermeldung: 
Method ’Application’ not supported by automation object.}


end;



Vielen Dank für jede Hilfe


Watsch - Mi 10.05.06 16:27

Hi.
Ich kann's jetzt zwar nicht 100%ig sagen, da ich kein Powerpoint besitze, aber möglicherweise liegts daran


Delphi-Quelltext
1:
2:
//Klappe an der Seite schließen  
  Powerpoint.Application.CommandBars('Task Pane').Visible := False;


Kommentier die Zeile mal aus, und probiers nochmal. Sollte es dann klappen, ersetz Application mit ActiveWindow.Selection, oder nur Selection. Wie gesagt, da ich kein PowerPoint besitze, kann ich Dir nix versprechen...


kuba - Mi 10.05.06 16:57

Hallo Watsch,
Danke für deine schnelle Antwort, aber dieser Teil:


Delphi-Quelltext
1:
2:
//Klappe an der Seite schließen    
  Powerpoint.Application.CommandBars('Task Pane').Visible := False;


funktioniert


Das Problem liegt hier:

Delphi-Quelltext
1:
Powerpoint.ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120, Top:=110, Width:=480, Height:=320, FileName:='C:\Dokumente und Einstellungen\...\Desktop\Test3.xls',Link := False).Select;                    




end;