Promotic

GetObject - funkcja języka VBScript

Opis:
Zwraca obiekt Automation z pliku.
Składnia:
Object GetObject([String Path], [String Class])
Parametry:
Path[opcjonalne] (String) Pełna ścieżka oraz nazwa pliku zawierającego wczytywany obiekt.
Jeżeli nie jest ustawione, wtedy jest wymagany parametr Class.
Class[opcjonalne] (String) Klasa obiektu.
Jest wprowadzana albo nazwa aplikacji oferująca dany obiekt lub klasa wytwarzanego obiektu.
Notatka:
Funkcja jest stosowana do dostępu do obiektu Automation z pliku i przyszeregowania obiektu do zmiennej objektowej. Do przyszeregowania obiektu zwróconego przez tę funkcję do zmiennej obiektowej jest stosowane polecenie Set.
Przykład:
Wybierz oraz skopiuj do schowka

Dim CADObject
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")


Przy wykonywaniu tego skryptu zostaje uruchomiona aplikacja skojarzona z określonym plikiem i obiekt w określonym pliku jest zaktywowany.
Jeżeli parametr Path jest pusty łańcuch (""), wtedy GetObject zwraca nową instancję obiektu określonego typu.
Jeżeli parametr Path jest pominięty, wtedy funkcja zwraca aktywny obiekt określonego typu.
Jeżeli obiekt danego typu nie istnieje, wtedy dojdzie do błędu.
Niektóre aplikacje umożliwiają aktywowanie część pliku przez dodanie wykrzykniku (!) za nazwę pliku z następującym łańcuchem określającym część aktywowanego pliku. Informację, w jaki sposób można wytworzyć taki łańcuch trzeba znaleźć w dokumentacji aplikacji wytwarzającej (udostępniającej) obiekt.
Na przykład w aplikacji do wytwarzania grafiki można mieć kilka warstw zapisanych w pliku. Można zastosować następujący skrypt do zaktywowania warstwy w obrazku o nazwie "SCHEMA.CAD":
Wybierz oraz skopiuj do schowka

Dim LayerObject
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")


Jeżeli nie jest określona klasa obiektu, wtedy system określi, jaką aplikację uruchomić i który obiekt aktywować według określonej nazwy pliku. Niektóre pliki mogą jednak wspierać więcej niż jedną klasę obiektu. Na przykład obrazek mógł by wspierać trzy typy obiektów: obiekt Aplikacja, obiekt Obrazek i obiekt Pasek narzędziowy i wszystkie są jednocześnie częścią tego samego pliku. Do określenia katywowanego obiektu w pliku jest stosowany opcjonalny parametr Class.
Przykład:
Wybierz oraz skopiuj do schowka

Dim oObject
Set oObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")


W poprzednim przykładzie jest FIGMENT nazwą aplikacji rysującej a DRAWING jest jednym ze wspieranych obiektów. Po zaktywowaniu obiektu jest w skrypcie zastosowane odniesienie przy pomocy nowo wytworzonej zmiennej obiektowej. Przy pomocy zmiennej obiektowej można pracować z właściwościami i metodami nowego obiektu.
Przykład:
Wybierz oraz skopiuj do schowka

oObject.Line 9, 90
oObject.InsertText 9, 100, "Hello, world."
oObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"


Funkcja jest stosowana, jeżeli istnieje aktywna instancja obiektu lub jeżeli obiekt jest wytwarzany z pliku. Jeżeli nie jest aktywna żadna instancja i nie jest aktywowany obiekt z pliku, wtedy można zastosować funkcję CreateObject.
Jeżeli obiekt został zarejestrowany jako jedno-instancjowy, wtedy zostanie wytworzona tylko jedna instancja obiektu bez względu na to, ile razy została wykonana funkcja CreateObject. W przypadku obiektu jedno instancjowego funckja GetObject zwraca zawsze tą samą instancję, jeżeli jest wołana z pustym łańcuchem "" i spowoduje błąd, jeżeli parametr Path jest pominięty.
Patrz również:
- Pm.ShellExecute (metoda)
- Pm.CreateProcess (metoda)
Przykład:
Przykład pokazuje, jak odczytać wartość z innej aplikacji PROMOTIC. Każda aplikacja PROMOTIC z puktu widzenia SO Windows funkcjonuje jako obiekt. Przy pomocy metody GetObject można uzyskać dostęp do innej aplikacji PROMOTIC (C:\Proj2\Proj2.pra) na tym samym komputerze. Z tej aplikacji następnie można uzyskać wartość zmiennej "Temperatura" w obiekcie /Data.
Wybierz oraz skopiuj do schowka

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("Temperatura").Value
End If
© MICROSYS, spol. s r.o.