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. Je-li cesta vynechána, 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 scriptu je spuštěna aplikace asociovaná s určeným souborem a objekt v určeném souboru je aktivován. Je-li argument Cesta prázdný řetězec (""), funkce vrací novou instanci objektu určeného typu. Je-li argument Cesta vynechán, funkce vrací aktivní objekt určeného typu. Neexistuje-li objekt určeného typu, 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 script k aktivaci vrstvy v obrázku nazvaném SCHEMA.CAD:

Dim LayerObject
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
 
Není-li určena třída objektu, 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 scriptu 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á, existuje-li aktivní instance objektu nebo vytváří-li se objekt ze souboru. Není-li žádná aktivní instance a neaktivuje-li se objekt ze souboru, užívá se funkce CreateObject.

Zaregistroval-li se objekt jako jedno-instanční, 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, je-li volána s prázdným řetězcem a způsobí chybu, je-li argument cesta vynechán.

Příklad:
Příklad ukazuje jak přečíst hodnotu z jiné PROMOTIC aplikace. Každá PROMOTIC aplikace 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