Promotic
WikipediaLinkedInYoutubeTwitterFacebook

GetObject - funkce jazyka VBScript

Popis:
Vrací odkaz na Automation objekt ze souboru.
Syntaxe:
GetObject([Path As String], [Class As String]) As Object
Volání:
Set o = GetObject(Path[, Class])
Parametry:
Path[nepovinné] (String) Úplná cesta a název souboru obsahujícího načítaný objekt. Pokud není nastaveno, pak je vyžadován argument třída.
Class[nepovinné] (String) Třída objektu. Zadává se buď název aplikace poskytující objekt nebo třída vytvářeného objektu.
Poznámka:
Funkce se používá pro přístup k Automation objektu ze souboru a přiřazení objektu do proměnné objektu. K přiřazení objektu vráceného touto funkcí do objektové proměnné se používá příkaz Set.

Příklad:

Dim CADObject
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")
 
Při provádění tohoto skriptu je spuštěna aplikace asociovaná s určeným souborem a objekt v určeném souboru je aktivován. Pokud je argument Cesta prázdný řetězec (""), pak funkce vrací novou instanci objektu určeného typu. Pokud je argument Cesta vynechán, pak funkce vrací aktivní objekt určeného typu. Pokud objekt určeného typu neexistuje, pak vzniká chyba.

Některé aplikace dovolí aktivovat část souboru přidáním vykřičníku (!) za název souboru následovaného řetězcem identifikujícím část aktivovaného souboru. Informaci, jak vytvořit tento řetězec, je nutno najít v dokumentaci aplikace vytvářející objekt.

Například v kreslící aplikaci lze mít více vrstev obrázku uložených v souboru. Šlo by použít následujícího skript k aktivaci vrstvy v obrázku nazvaném SCHEMA.CAD:

Dim LayerObject
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
 
Pokud není určena třída objektu, pak systém určí, kterou aplikaci spustit a který objekt aktivovat podle zadaného jména souboru. Některé soubory však mohou podporovat více než jednu třídu objektu. Například obrázek by mohl podporovat tři typy objektu: objekt Aplikace, objekt Obrázek a objekt Nástrojová lišta a všechny jsou současně části stejného souboru. K určení aktivovaného objektu v souboru se používá volitelný argument Třída.

Příklad:

Dim oObject
Set oObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
 
V předcházejícím příkladě je FIGMENT název kreslící aplikace a DRAWING je jedním z podporovaných objektů. Po aktivaci objektu se na něj ve skriptu odkazuje pomocí vytvořené objektové proměnné. Pomocí objektové proměnné se přistupuje k vlastnostem a k metodám nového objektu.

Příklad:

oObject.Line 9, 90
oObject.InsertText 9, 100, "Hello, world."
oObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
 
Funkce se používá, pokud existuje aktivní instance objektu nebo vytváří-li se objekt ze souboru. Pokud není žádná aktivní instance a neaktivuje-li se objekt ze souboru, pak lze použít funkci CreateObject.

Pokud se zaregistroval objekt jako jedno-instanční, pak bude vytvořena pouze jediná instance objektu bez ohledu na to, kolikrát byla funkce CreateObject provedena. U jedno-instančního objektu funkce GetObject vždy vrací tutéž instanci, pokud je volána s prázdným řetězcem a způsobí chybu, pokud je argument cesta vynechán.

Příklad:
Příklad ukazuje jak přečíst hodnotu z jiné PROMOTIC aplikace. Každá aplikace PROMOTIC se z hlediska OS Windows chová jako objekt. Pomocí metody GetObject získáme přístup k jiné PROMOTIC aplikaci (C:\Proj2\Proj2.pra) na stejném počítači. Z této aplikace pak získame hodnotu datové položky "Teplota" v objektu /Data.
Dim oProj, oPm, Val
Set oProj = GetObject("C:\proj2\proj2.pra")
If Not oProj Is Nothing Then
  Set oPm = oProj.Application.Pm
  Val = oPm("/Data").Item("Teplota").Value
End If
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice