Quelltext, der beim Importieren von Typbibliotheksinformationen generiert wird

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Typbibliotheksinformationen importieren


Nach dem Importieren einer Typbibliothek können Sie die generierte Unit TypeLibName_TLB anzeigen. Am Anfang der Unit finden Sie die folgenden Informationen:

1. Erstens, Konstantendeklarationen die den GUIDs der Typbibliothek sowie ihren Interfaces und CoClasses symbolische Namen geben. Die Namen für diese Konstanten werden wie folgt generiert:

  • Die GUID für die Typbibliothek hat das Format LIBID_TypeLibName, wobei TypeLibName der Name der Typbibliothek ist.
  • Die GUID für ein Interface hat das Format IID_InterfaceName, wobei InterfaceName der Name des Interface ist.
  • Die GUID für ein Dispatch-Interface hat das Format DIID_InterfaceName, wobei InterfaceName der Name des Dispatch-Interface ist.
  • Die GUID für eine CoClass hat das Format CLASS_ClassName, wobei ClassName der Name der CoClass ist.
  • Die Compiler-Direktive VARPROPSETTER ist aktiviert. Dies ermöglicht die Verwendung des Schlüsselworts var in der Parameterliste der Methoden zum Setzen der Eigenschaft. Dadurch wird eine Compiler-Optimierung deaktiviert, die eine Übergabe von Parametern per Wert statt per Referenz verursachen würde. Die Direktive VARPROPSETTER muss bei der Erstellung von TLB-Units für Komponenten aktiviert sein, die in einer anderen Sprache als Delphi programmiert sind.

2. Zweitens, Deklarationen für die CoClasses in der Typbibliothek. Diese ordnen jede CoClass ihrem Standard-Interface zu.

3. Drittens, Deklarationen für die Interfaces und Dispatch-Interfaces in der Typbibliothek.

4. Viertens, Deklarationen für eine Creator-Klasse für jede CoClass, deren Standard-Interface die VTable-Bindung unterstützt. Die Creator-Klasse verfügt über zwei Klassenmethoden, Create und CreateRemote. Mit diesen Methoden kann die CoClass lokal (Create) oder remote (CreateRemote) instantiiert werden. Diese Methoden geben das Standard-Interface für die CoClass zurück.

Diese Deklarationen liefern die erforderlichen Informationen, die Sie zum Erstellen von Instanzen der CoClass und den Zugriff auf ihr Interface benötigen. Sie müssen nur die generierte Datei TypeLibName_TLB.pas der uses-Klausel der Unit hinzufügen, in der Sie eine Bindung an eine CoClass und den Aufruf ihrer Interface wünschen.

Hinweis: Dieser Abschnitt der Unit TypeLibName_TLB wird auch generiert, wenn Sie den Typbibliothekseditor oder das Befehlszeilen-Tool TLIBIMP verwenden.

Wenn Sie ein ActiveX-Steuerelement verwenden möchten, benötigen Sie neben den oben beschriebenen Deklarationen auch den generierten VCL-Wrapper. Dieser übernimmt Funktionen der Fensterverwaltung für das Steuerelement. Sie haben im Dialogfeld Typbibliothek importieren eventuell auch einen VCL-Wrapper für andere CoClasses generiert. Diese VCL-Wrapper vereinfachen die Erstellung von Serverobjekten und den Aufruf ihrer Methoden. Sie werden besonders empfohlen, wenn Ihre Client-Anwendung auf Ereignisse antworten soll.

Die Deklarationen für die generierten VCL-Wrapper erscheinen am Ende des interface-Abschnitts. Komponenten-Wrapper für ActiveX-Steuerelemente sind Nachkommen von olectrls.TOleControl. Komponenten-Wrapper für Automatisierungsobjekte werden von Vcl.OleServer.TOleServer abgeleitet. Der generierte Komponenten-Wrapper fügt die Eigenschaften, Ereignisse und Methoden hinzu, die von dem Interface der CoClass bereitgestellt werden. Sie können diese Komponente wie jede andere VCL-Komponente verwenden.

Warnung: Bearbeiten Sie die generierte Unit TypeLibName_TLB nicht. Da sie bei jeder Aktualisierung der Typbibliothek neu generiert wird, werden alle Änderungen überschrieben.

Hinweis: Aktuelle Informationen über den generierten Quelltext finden Sie in den Kommentaren der automatisch generierten Unit TypeLibName_TLB.

Siehe auch