Clients für Server erstellen, die über keine Typbibliothek verfügen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu COM-Clients erstellen - Index


Einige ältere COM-Technologien, z.B. OLE (Object Linking und Embedding) liefern keine Typinformationen in einer Typbibliothek. Stattdessen benötigen Sie einen Standardsatz aus vordefinierten Schnittstellen. Zur Erstellung von Clients, die als Host für solche Objekte dienen, können Sie die Komponente Vcl.OleCtnrs.TOleContainer verwenden. Diese Komponente befindet sich in der Kategorie System der Tool-Palette.

TOleContainer fungiert als Host-Site für ein Ole2-Objekt. Es implementiert die Schnittstelle IOleClientSite und wahlweise IOleDocumentSite. Die Kommunikation erfolgt über OLE-Verben.

Führen Sie folgende Schritte durch, um TOleContainer zu verwenden:

  1. Fügen Sie die Komponente TOleContainer in Ihr Formular ein.
  2. Setzen Sie die Eigenschaft AllowActiveDoc auf True, wenn Sie ein Active-Dokument aufnehmen möchten.
  3. Setzen Sie die Eigenschaft AllowInPlace, um anzugeben, ob das aufgenommene Objekt in TOleContainer oder in einem separaten Fenster erscheinen soll.
  4. Erstellen Sie Ereignisbehandlungen, um auf das Aktivieren, Deaktivieren, Verschieben oder eine Größenänderung des Objekts zu antworten.
  5. Um das Objekt TOleContainer zur Entwurfszeit zu binden, klicken Sie mit der rechten Maustaste und wählen dann Objekt einfügen. Wählen Sie im Dialogfeld Objekt einfügen das aufzunehmende Objekt aus.
  6. Um das Objekt TOleContainer zur Laufzeit zu binden, können Sie aus mehreren Methoden wählen, je nachdem, wie Sie das Server-Objekt identifizieren möchten. Dazu gehören: CreateObject, das eine Programm-ID akzeptiert, CreateObjectFromFile, das den Namen einer Datei akzeptiert, in der das Objekt gespeichert wurde, CreateObjectFromInfo, die einen Datensatz mit Informationen zur Erstellung des Objekts enthält, oder CreateLinkToFile, das den Namen einer Datei akzeptiert, in der das Objekt gespeichert wurde und eine Verknüpfung mit dieser erstellt anstatt es einzubetten.
  7. Nachdem das Objekt gebunden ist, können Sie auf seine Schnittstelle mit der Eigenschaft OleObjectInterface zugreifen. Da jedoch die Kommunikation mit Ole2-Objekten auf OLE-Verben basiert, werden Sie mit großer Wahrscheinlichkeit Befehle an den Server mit der Methode DoVerb senden.
  8. Wenn Sie das Server-Objekt freigeben möchten, rufen Sie die Methode DestroyObject auf.

Siehe auch