Home » Tipps & Tricks » COM/OLE/DDE » Word » Word-OLE-Server-Komponente verwenden

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.