Word-OLE-Server-Komponente verwenden
Ab Delphi 5 Professional gibt es in der Komponente eine Seite mit Server-Komponenten. Dadurch wird die OLE-Automation, also die „Fernbedienung“ anderer Anwendungen, wesentlich vereinfacht.
Um beispielsweise eine Verbindung zu Word (muss natürlich installiert sein) aufzubauen, müssen die beiden Komponenten TWordApplication sowie TWordDocument auf einem Formular platziert werden. Falls sie in der Toolpalette nicht zu finden sind, muss im Menü Komponente / Packages installieren ein Haken gesetzt werden vor „Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server“.
TWordApplication ist für die Steuerung von Word als Anwendung und Zentrale zur Verwaltung mehrer Dokumente zuständig. TWordDocument wird dagegen mit einem speziellen Word-Dokument verbunden und ist für die Bearbeitung dieses Dokuments zuständig. Folgender Code ist nötig, um eine Verbindung zu Word aufzubauen:
procedure TForm1.Button1Click(Sender: TObject); var vParam: OleVariant; FPara: Paragraph; //Absatz FRange: Range; //Bereich cDoc: string; begin cDoc := 'c:testbeispiel.doc'; vParam := cDoc; WordApplication1.Connect; try // Datei in vParam wird geöffnet WordApplication1.Documents.Open(vParam); // Verbindung zwischen TWordApplication und TWordDocument WordDocument1.ConnectTo(WordApplication1.ActiveDocument); // Ab jetzt wird mit dem Dokument gearbeitet // Auswahl eines Absatzes FPara := WordDocument1.Paragraphs.Item(3); // Auswahl eines Wortes FRange := FPara.Range.Words.Item(2); // Wort wird fett dargestellt FRange.Bold := 1; // Word wird angezeigt, bisher war es unsichtbar im Hintergrund WordApplication1.visible := true; vParam := false; // Parameter gibt an, ob Speichern oder nicht WordDocument1.Close(vParam); // Verbindung trennen WordDocument1.Disconnect; finally // Word freigeben WordApplication1.Disconnect; end; end;
Die Eigenschaft ConnectKind von TWordApplication (im Objektinspektor) legt fest, ob bei jedem Verbindungsaufbau dieselbe Word-Instanz genutzt oder ob jedes Mal eine neue gestartet werden soll.
Der besondere Vorteil der Server-Komponenten liegt darin, dass die Code-Vervollständigung (Strg+Leertaste nach einem Objektnamen mit Punkt) über alle möglichen Methoden informiert und über Strg+Shift+Leertaste die nötigen Parameter angezeigt werden.