Von Experten generierter Code

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Implementieren von COM-Objekten mit Hilfe der Experten


Die Experten in Delphi und C++Builder generieren Klassen, die vom DAX (Delphi ActiveX-Framework) abgeleitet sind. Trotz des Namens unterstützt das ActiveX-Framework nicht nur ActiveX-Steuerelemente, sondern sowohl Delphi- und C++-Objekte als auch sämtliche Arten von COM-Objekten. Die DAX-Klassen stellen die zugrunde liegenden Implementierung der Standard-COM-Schnittstellen für Objekte zur Verfügung, die Sie mit einem Experten erzeugen.

Die folgende Abbildung zeigt die im DAX enthaltenen Objekte:

Hinweis: Für C++Builder, enthalten die DAX-Objektnamen typischerweise "Cpp" (z.B. TCppComObject und TCppActiveXPropertyPage usw.).

Delphi ActiveX-Framework (DAX)

Jeder Experte generiert eine Implementierungs-Unit, die Ihr COM-Serverobjekt implementiert. Das COM-Serverobjekt (das Implementierungsobjekt) ist von einer der DAX-Klassen abgeleitet:

DAX-Basisklassen für generierte Implementierungsklassen:

Experte DAX-Basisklassen Geerbte Unterstützung

COM-Server

System.Win.ComObj.TTypedComObject

Unterstützung für die Schnittstellen IUnknown und ISupportErrorInfo.

Unterstützung für Aggregation, OLE-Eexception-Behandlung und Safecall-Aufrufkonventionen für Dual-Schnittstellen.

Unterstützung für das Lesen von Informationen aus der Typbibliothek.

Automatisierungs-Server oder Active-Server-Seiten erstellen - Index

System.Win.ComObj.TAutoObject

Wie TTypedCOMObject und zusätzlich:

Unterstützung für die IDispatch-Schnittstelle.

Unterstützung für automatisches Marshaling.


Entsprechend den Klassen im DAX gibt es eine Hierarchie von Klassengeneratorobjekten, die zur Erzeugung dieser COM-Objekte dienen. Der Experte fügt Code in den Initialisierungsabschnitt Ihrer Implementierungs-Unit ein, die eine Instanz des entsprechenden Klassengenerators für Ihre Implementierungsklasse erzeugt.

Die Experten generieren zudem eine Typbibliothek und deren zugeordnete Unit, die einen Namen wie Project1_TLB enthält. Die Project1_TLB-Unit enthält die von Ihrer Anwendung benötigten Informationen zur Benutzung der Typdefinitionen und Schnittstellen, die in der Typbibliothek definiert sind. Weitere Informationen über den Inhalt dieser Datei finden Sie im Abschnitt Quelltext, der beim Importieren von Typbibliotheksinformationen generiert wird.

Sie können die vom Experten generierte Schnittstelle mit dem Typbibliothekseditor ändern. Dabei wird die Implementierungsklasse automatisch entsprechend aktualisiert. Sie müssen dann nur die generierte Methode mit Code füllen, um die Implementierung zu vervollständigen.