Die GetObject-Funktion gibt einen Verweis auf ein serverseitiges COM-Objekt aus einer Datei zurück.
Syntax | |||||
GetObject([PathName [, Class]]) | |||||
Rückgabewert | |||||
Typ |
Beschreibung | ||||
Variant |
Verweis auf ein COM-Objekt | ||||
Parameter | |||||
Verwendung |
Name |
Typ |
Übergabe |
Beschreibung | |
Optional |
Path |
String |
ByVal |
Siehe unten | |
Optional |
Class |
String |
ByVal |
Siehe unten | |
Der optionale Parameter Path gibt den vollständigen Pfad und Namen der Datei an, die das abzurufende Objekt enthält. Wird Path nicht angegeben, muss der Parameter Class übergeben werden.
Über den optionalen Parameter Class wird die Klasse des Objekts angegeben. Class verwendet folgende Syntax: AnwName.Objekttyp
AnwName Name der Anwendung, die das Objekt bereitstellt.
Objekttyp Typ oder Klasse des zu erstellenden Objekts.
Bemerkungen
Verwenden Sie die GetObject-Funktion für den Zugriff auf ein ActiveX-Objekt aus einer Datei, und weisen Sie das zurückgegebene Objekt einer Objektvariablen zu.
Beispiel
Dim CADObjekt As Variant
CADObjekt := Server.GetObject("C:\CAD\SCHEMA.CAD")
Wenn dieser Code ausgeführt wird, wird die mit dem angegebenen PathName verbundene Anwendung gestartet, und das Objekt in der angegebenen Datei wird aktiviert.
Ist PathName eine Null-Zeichenfolge (""),gibt GetObject eine neue Instanz des Objekts vom angegebenen Typ zurück. Wird das Argument PathName nicht angegeben, so gibt GetObject ein momentan aktives Objekt vom angegebenen Typ zurück. Existiert kein Objekt vom angegebenen Typ, tritt ein Fehler auf.
Einige Anwendungen erlauben es, einen Teil einer Datei zu aktivieren. Fügen Sie am Ende des Dateinamens ein Ausrufezeichen (!) hinzu, gefolgt von der Zeichenfolge, die den zu aktivierenden Teil der Datei angibt. Weitere Informationen über die Erstellung dieser Zeichenfolge finden Sie in der Dokumentation zu der Anwendung, die das Objekt erstellt hat.
In einer Grafikanwendung beispielsweise verfügen Sie über mehrere Schichten einer Zeichnung, die in einer Datei gespeichert sind. Sie können den folgenden Code zur Aktivierung einer Schicht innerhalb einer Zeichnung namens SCHEMA.CAD verwenden:
SchichtObjekt := Server.GetObject("C:\CAD\SCHEMA.CAD!Layer3")
Wenn Sie das class-Argument des Objekts nicht angeben, bestimmt die Automatisierung, welche Anwendung gestartet werden soll, sowie das zu aktivierende Objekt, basierend auf dem bereitgestellten Dateinamen. Einige Dateien können jedoch mehr als eine Klasse eines Objekts unterstützen. Eine Zeichnung kann z.B. drei unterschiedliche Objekttypen unterstützen: Ein Application-Objekt, ein Drawing-Objekt und ein Toolbar-Objekt, wobei alle drei Teil der gleichen Datei sind. Verwenden Sie das optionale Argument class, um festzulegen, welches Objekt in der Datei Sie aktivieren wollen. Beispiel:
Dim MeinObjekt As Variant
MeinObjekt := Server.GetObject("C:\DRAWINGS\BEISPIEL.DRW", "FIGMENT.DRAWING")
Im obigen Beispiel ist FIGMENT der Name einer Grafikanwendung und DRAWING einer der unterstützten Objekttypen.
Wurde ein Objekt aktiviert, so verweisen Sie im Code mit Hilfe der definierten Objektvariablen darauf. Im folgenden Beispiel greifen Sie auf Eigenschaften und Methoden des neuen Objekts über die Objektvariable MeinObjekt zu. Beispiel:
MeinObjekt.Line(9, 90)
MeinObjekt.InsertText(9, 100, "Hallo !")
MeinObjekt.SaveAs("C:\ENTWURF\BEISPIEL.DRW")
Anmerkung
Verwenden Sie die GetObject-Funktion, wenn eine aktuelle Instanz des Objekts existiert oder wenn Sie das Objekt mit einer bereits vorhandenen Datei erstellen wollen. Wenn keine aktuelle Instanz existiert und Sie das Objekt nicht mit einer vorhandenen Datei starten wollen, verwenden Sie die CreateObject-Funktion.
Wenn ein Objekt sich selbst als ein Objekt mit nur einer Instanz registriert hat (SingleValue in VB), wird nur eine Instanz des Objekts erstellt, ungeachtet dessen, wie oft CreateObject ausgeführt wird. Bei einem Objekt mit nur einer Instanz gibt GetObject bei einem Aufruf mit einer Null-Zeichenfolge ("") immer die gleiche Instanz zurück. Ein Fehler tritt auf, wenn das Argument PathName nicht angegeben wird.