Das Fenster des Typbibliothekseditors

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Menü Ansicht

Ansicht > Typbibliothek

Zeigt eine Typbibliothek an und ermöglicht deren Änderung. In Appmethod 2009 wurde der neue Dateityp .ridl für Typbibliotheken hinzugefügt. Der Typbibliothekseditor zeigt Typbibliotheken im textbasierten Format RIDL (Restricted Interface Definition Language) an und speichert sie auch in diesem Format. Wenn Sie ein COM-Objekt erstellen, generiert der Typbibliothekseditor automatisch die erforderliche RIDL-Syntax. Alle vorgenommenen Änderungen werden in die entsprechende Implementierungsklasse übernommen (sofern sie mit einem Experten erstellt wurde). Die Typbibliothek wird beim Erzeugen oder Speichern Ihres Projekts auch als .tlb-Datei gespeichert.

Der Befehl Ansicht > Typbibliothek steht nur für Projekte zur Verfügung, die eine Typbibliothek enthalten. Die verschiedenen COM-bezogenen Experten der Registerkarte ActiveX fügen dem Projekt automatisch eine Typbibliothek hinzu, wenn mit ihrer Hilfe ein COM-Objekt erstellt wird.

Eine von diesen Experten erzeugte Typbibliothek wird in der Projektverwaltung als .ridl-Datei repräsentiert. Doppelklicken Sie auf die .ridl-Datei, um sie im Typbibliothekseditor zu öffnen. Mit dem Typbibliothek-Explorer öffnen Sie eine .tlb-Datei (die nicht in Appmethod erstellt wurde) im schreibgeschützten Modus.

GenTLB.exe

Wenn Sie Ihr Projekt speichern oder erzeugen, generiert der Typbibliotheks-Compiler (GenTLB.exe) die eigentliche Typbibliotheksdatei (.tlb). Wenn Sie danach das Projekt mit IDE-Befehlen compilieren oder erzeugen, erstellt die IDE (nicht GenTLB.exe) die .pas- bzw. .cpp-Datei.

Hinweis: Wenn Sie das Projekt außerhalb der IDE compilieren oder erzeugen, besteht die Möglichkeit, dass die .tlb-Datei nicht mehr mit der .pas- bzw. .cpp-Datei synchron ist. Um dies zu vermeiden, sollten Sie Ihr Projekt stets in der IDE compilieren und erzeugen.

Das Fenster des Typbibliothekseditors

Im Fenster des Typbibliothekseditors wird die .ridl-Datei angezeigt.

Das Fenster enthält am unteren Rand drei Register:

  • Auf der Seite "Code" wird der .ridl-Quelltext (Restricted Interface Definition Language) angezeigt. Sie können den RIDL-Quelltext auf dieser Seite bearbeiten.
  • Die Seite "Design" ist das Hauptfenster des Typbibliothekseditors. Mithilfe der Register auf der Seite Design können Sie die Typbibliothek untersuchen und die Eigenschaften der Elemente der Typbibliothek in den Feldern ändern.
  • Auf der Seite Seite "Historie" wird die Versionsgeschichte der Typbibliothek angezeigt (siehe Versionsverwaltung).

Register auf der Seite "Design": Die Seite Design ist das eigentliche Fenster des Typbibliothekseditors. Über die verschiedenen Register am oberen Rand der Seite werden Einzelheiten zu dem aktuell in der Objektliste ausgewählten Element der Typbibliothek angezeigt. Die angezeigten Register hängen von dem ausgewählten Objekt ab. Beispielsweise könnten die folgenden Register anzeigt werden:

  • Die Seite "Attribute" enthält Typinformationen für das ausgewählte Objekt. .
  • Die Seite "Parameter" zeigt die Parameter der ausgewählten Methode an.
  • Die Seite "Flags" führt die dem aktuell ausgewählten Element zugeordneten Flags auf.
  • Die Seite "Verwendet" enthält die Typbibliotheken, die von der ausgewählten Typbibliothek abhängen.

Alle Register werden weiter unten ausführlicher beschrieben.

Symbolleiste

Mithilfe der Schaltflächen in der Symbolleiste können Sie Elemente in der Typbibliothek erstellen, die Implementierung aktualisieren, die Typbibliothek registrieren und die RIDL-Datei als .tlb-Datei speichern. Siehe Symbolleiste.

Objektliste

In der Objektliste werden alle Instanzen eines Informationstyps der aktuellen Typbibliothek in Form eines eindeutigen Symbols angezeigt. Wählen Sie ein Symbol aus, um seine Datenseiten im Informationsbereich auf der rechten Seite anzuzeigen.

Seite "Code" der .ridl-Datei

Enthält die Deklarationen für das aktuell ausgewählte Element im RIDL-Code (Restricted Interface Definition Language). Sie können hier alle Typinformationen auf einmal überprüfen und Änderungen schneller als auf den anderen Seiten vornehmen.

So lassen sich beispielsweise mit dem Befehl Suchen > Ersetzen die Vorgabewerte von Parametern ändern – eine ansonsten ziemlich langweilige Arbeit.

Seite "Design" der .ridl-Datei

Ist das Hauptfenster des Typbibliothekseditors. Zeigt Einzelheiten zu dem aktuell in der Objektliste ausgewählten Element. Auf der Seite Design können Sie Optionen setzen oder entfernen und Werte für bestimmte Eigenschaften angeben oder auswählen.

Mit der Symbolleiste am oberen Rand des Fensters der .ridl-Datei können Sie neue Element in der Typbibliothek erstellen, z.B. Interfaces, Methoden, Eigenschaften usw. Siehe Symbolleiste.

Die verschiedenen Register oben auf der Seite Design (werden weiter unten beschrieben) zeigen abhängig von dem in der Objektliste ausgewählten Objekt unterschiedliche Informationen an.

Seite "Historie" der .ridl-Datei

Zeigt die Versionsverwaltung an.

Seite "Attribute"

Zeigt die Typinformationen für das in der Objektliste ausgewählte Objekt an. Mithilfe der Eingabefelder können Sie die Werte ändern. Die angezeigten Attribute gelten für das ausgewählte Element.

Element Beschreibung

Name

Ein Name, der die Typbibliothek beschreibt. Der Name darf keine Leer- oder Satzzeichen enthalten.

GUID

Der global eindeutige 128-Bit-Bezeichner für das Interface der Typbibliothek (ein Nachkomme von ITypeLib).

Registrierter Speicherort

Speicherort der registrierten Typbibliothek auf Ihrem System.

Version

Eine bestimmte Version der Typbibliothek für den Fall, dass mehrere Versionen der Bibliothek vorhanden sind. Die Versionsangabe besteht entweder aus einem Paar dezimaler Integerwerte, die durch einen Punkt voneinander getrennt sind, oder aus einem einzelnen dezimalen Integerwert. Der erste Wert in einem Integerpaar steht für die Hauptversionsnummer, der zweite Wert gibt die Nebenversionsnummer an. Wenn nur ein Integerwert verwendet wird, ist dies die Hauptversionsnummer. Sowohl die Haupt- als auch die Nebenversionsnummer sind vorzeichenlose Integerwerte vom Typ Short im Bereich zwischen 0 und 65535.

LCID

Die Gebietsschema-ID der Sprache, die für alle Textstrings und Elemente der Typbibliothek verwendet wird.

DispID

Die Dispatch-ID des Interface. Identifiziert einen bestimmten Member eines Interface/Dispinterface. Die DispID wird von Clients beim Aufruf von Membern eines Automatisierungsobjekts verwendet.

V-Tabelle-Offset

Erscheint nur für Eigenschaften innerhalb eines Interface. Gibt die Reihenfolge der Eigenschaften an.

Hilfe-String

Eine kurze Beschreibung der Typbibliothek. Das Attribut Hilfe-String wird in Kombination mit Hilfekontext zur Bereitstellung von Hilfeinformationen in Form einer Hilfedatei verwendet. Der String wird bei der Erstellung der Hilfedatei dem Hilfekontext zugeordnet.

Hilfekontext

Die Hilfekontext-ID für die Hilfe der Typbibliothek. Sie bezeichnet das Thema innerhalb der Hilfedatei.

Hilfe-String-Kontext

Bei Hilfe-DLLs ist der Hilfe-String-Kontext die Kontext-ID für die Hilfe der Typbibliothek. Sie wird zusammen mit dem Attribut Hilfe-String-DLL zur Bereitstellung der Hilfe als eigene DLL verwendet.

Hilfedatei

Der Name der Hilfedatei (.chm oder .hlp), die mit der Typbibliothek verknüpft ist (falls vorhanden).

Hilfe-String-DLL

Der vollständige Name der Hilfe-DLL (falls vorhanden).



Hinweis: Der Typbibliothekseditor unterstützt zwei Methoden für die Bereitstellung der Hilfe: Eine für die Bibliothek erstellte Windows-Standardhilfedatei (dies ist die gebräuchliche Methode) oder eine separate DLL mit Hilfeinformationen (diese Methode erleichtert die Lokalisierung). Die Hilfedatei, für die Sie die Hilfeattribute definiert haben, müssen Sie selbst bereitstellen.

Seite "Flags"

Zeigt verschiedene Attribute an, mit der das auf der Seite Attribute beschriebene Objekt geändert werden kann. Diese Seite steht nur für einige Elemente zur Verfügung.

Einige Typbibliothekselemente verfügen über Flags, mit denen bestimmte Merkmale oder Fähigkeiten aktiviert oder deaktiviert werden können. Mit den Kontrollkästchen auf der Seite Flags können diese Flags ein- und ausgeschaltet werden.

Seite "Implementierung"

Steht nur zur Verfügung, wenn eine CoClass in der Objektliste ausgewählt ist. Zeigt eine Liste der Interfaces an, die von der CoClass implementiert werden. Sie können das dem Objekt zugeordnete Interface oder dessen Eigenschaften ändern.

Element Beschreibung

Interface

Der Name eines Interface (oder eines DispInterface), das von der CoClass unterstützt wird. Dieser Name wird bei der Auswahl des Interface (bzw. des DispInterface) auf der Seite Attribute zugewiesen.

GUID

Der global eindeutige Bezeichner des Interface. Diese Angabe dient lediglich zu Informationszwecken und kann nicht geändert werden.

Quelle

Gibt an, ob das Interface als Ereignisquelle fungiert. Wenn dies der Fall ist, wird das Interface nicht von der CoClass implementiert. Stattdessen implementieren die Clients das Interface, und die CoClass ruft die Clients über dieses Interface beim Auslösen von Ereignissen auf.

Vorgabe

Gibt an, dass das Interface bzw. das DispInterface das Standard-Interface ist. Wenn eine Instanz der Klasse erstellt wird, gibt der Konstruktor standardmäßig dieses Interface zurück. Eine CoClass kann maximal zwei Standardelemente haben. Eines repräsentiert das primäre Interface, das andere ein optionales DispInterface, das als Ereignisquelle dient.

Eingeschränkt

Verhindert, dass das Element von Programmierern verwendet wird. Ein Interface kann entweder das Attribut Vorgabe oder Eingeschränkt haben.

V-Tabelle

Gibt an, ob Interface-Methoden unter Verwendung einer V-Tabelle aufgerufen werden können (im Gegensatz zu IDispatch-Aufrufen). Diese Angabe dient lediglich zu Informationszwecken und kann nicht geändert werden.



Seite "Parameter"

Steht nur zur Verfügung, wenn eine Eigenschaft oder Methode in der Objektliste ausgewählt ist. Sie können hier die Parameter und den Rückgabewert von Methoden festlegen (dies gilt auch für Methoden für den Eigenschaftszugriff).

Element Beschreibung

Name

Gibt den Namen des Parameters an. Sie können diesen Wert direkt bearbeiten.

Typ

Gibt den Datentyp des Parameters an. Wählen Sie einen Typ aus der Dropdown-Liste der verfügbaren Typen aus, die angezeigt wird, wenn Sie in der Spalte Typ klicken.

Vorgabewert

Geben Sie den Vorgabewert für einen optionalen Parameter direkt in diese Spalte ein. Alle nachfolgenden Parameter müssen optional sein. Für vorhergehende Parameter sollte ebenfalls ein Vorgabewert definiert sein. Wenn Sie in Object Pascal arbeiten, werden lokale IDs mit Hilfe des Parametertyp-Bezeichners TLCID angegeben. In IDL erfolgt diese Angabe durch einen Parametermodifizierer.



Seite "Verwendet"

Steht nur zur Verfügung, wenn die Typbibliothek in der Objektliste ausgewählt ist. Hier werden weitere Typbibliotheken angezeigt, die Definitionen enthalten, von der die ausgewählte Bibliothek abhängig ist.

Zum Hinzufügen einer Abhängigkeit aktivieren Sie das Feld neben dem Namen der Typbibliothek. Die Definitionen in dieser Bibliothek können dann von der aktuellen Typbibliothek verwendet werden. Wenn Sie eine Bibliothek hinzufügen möchten, die nicht in der Liste enthalten ist, klicken Sie mit der rechten Maustaste und wählen Alle Typbibliotheken anzeigen.

Zum Entfernen einer Abhängigkeit deaktivieren Sie das Feld neben dem Namen der Typbibliothek.

Um eine andere Typbibliothek anzuzeigen, wählen Sie diese aus, klicken mit der rechten Maustaste und wählen Typbibliothek anzeigen.

Seite "COM+"

Mit dieser Seite können Sie das Transaktionsattribut eines transaktionalen Objekts ändern, das mit MTS installiert werden soll, oder die COM+-Attribute einer CoClass modifizieren, die mit COM+ installiert werden soll.

Die Attribute auf dieser Seite bestimmen außerdem, wie Automatisierungsobjekte, die nicht mit dem Experten für transaktionale Datenmodul-Objekte erstellt wurden, von der IDE in MTS-Packages oder COM+-Anwendungen installiert werden. Beachten Sie aber, dass solche Objekte IObjectControl nicht automatisch unterstützen. Das bedeutet, dass sie nicht über Aktivierungen oder Deaktivierungen benachrichtigt werden (sie unterstützen keine OnActivate- und OnDeactivate-Ereignisse). Da sie auch nicht über die Eigenschaft ObjectContext verfügen, muss der Objektkontext durch einen Aufruf der globalen Funktion GetObjectContext abgerufen werden.

Hinweis: Bei der Installation in einem MTS-Package wird nur das Attribut Transaktionsmodell berücksichtigt. Alle anderen Einstellungen werden ignoriert. Wenn Sie beabsichtigen, das Objekt unter MTS zu installieren, müssen Sie ein Automatisierungsobjekt in einem In-Process-Server (DLL) verwenden.

Warnung: Die Attribute, die Sie auf der Seite COM+ festlegen, werden in der Typbibliothek als benutzerspezifische Daten codiert. Außerhalb von Object Pascal werden diese Daten nicht erkannt. Die Attributeinstellungen sind daher nur wirksam, wenn Sie das transaktionale Objekt über die IDE installieren. Wenn das Objekt auf andere Weise weitergegeben werden soll, müssen Sie die Einstellungen explizit mit dem MTS-Explorer oder dem COM+-Komponenten-Manager festlegen.

Element Beschreibung

Synchronisierung aufrufen

Nur COM+: Legt fest, auf welche Weise das Objekt an Aktivitäten beteiligt ist. Sie können so für eine zusätzliche Synchronisierung sorgen, die über die Standardsynchronisierung des Threading-Modells hinausgeht.

Transaktionsmodell

Legt das Transaktionsattribut fest, das angibt, wie das Objekt an Transaktionen teilnimmt. Die möglichen Werte für dieses Attribut hängen davon ab, ob das Objekt unter MTS oder unter COM+ eingesetzt wird. Wenn aufgrund dieser Einstellung Transaktionen unterstützt werden, muss auch das Attribut Just In time-Aktivierung aktiviert werden.

Objekt-Pooling

Nur COM+: Bestimmt, ob für Objektinstanzen Pooling gestattet ist. Wenn Sie das Objekt-Pooling aktivieren, müssen Sie sicherstellen, dass das Objekt statuslos ist.

Zeitüberschreitung bei Erzeugung

Nur COM+: Legt fest, wie lange ein Objekt mit aktiviertem Pooling im Objektpool verbleibt, bevor es wieder freigegeben wird (in Millisekunden).

Inproc-Subscriber zulassen

Ist nur wirksam, wenn die CoClass ein COM+-Ereignisobjekt ist. Legt fest, ob In-Process-Anwendungen als Clients des Ereignisobjekts registriert werden können.

Parallel auslösen

Nur anwendbar, wenn die CoClass ein COM+-Ereignisobjekt darstellt. Legt fest, ob COM+-Ereignisse parallel (bei Multi-Threads) auslöst oder nacheinander im selben Thread.

Siehe auch