Obiekt
PmAction jest odpowiedni wtedy, jeżeli istnieje potrzeba by "ktoś" wytworzył obiekt ten (tzn. wytworzył "akcję"), obiekt ten przekazał w dowolne miesjce a później "ktoś kiedyś" daną akcję wywołał. Ważnym jest, że ten "ktoś" tylko wywoła metodę
Call i wogóle nie musi znać zawartości (np. nie wie, że ponad dowolnym obiektem zostanie wywołana dowolna metoda projektanta z jakimś parametrem,).
Sposoby stosowania obiektu PmAction:
Wytworzoną akcję można użytkować na dwa sposoby:
1. Można ją ustawić do komponentu systemowego tak, że ten komponent wywoła akcję samodzielnie aż będzie potrzebna.
W tym przypadku projektant
nie woła metodę Call. Tą metodę woła komponent systemowy a przy wywołaniu może ustawić różne ważne informacje w właściwościach obiektu, który jest poźniej dostępny w wołanej metodzie projektanta w parametrze
oSystem.
Przykłady komponent systemowych, w których można ustawić
PmAction:
2. Projektant korzysta z akcji dla swoich potrzeb i później
woła metodę Call kiedy uzna za stosowne.
Przykład wytworzenia oraz zastosowania obiektu PmAction:
Wytworzy akcję: W tej częsci zostanie wytworzona akcja typu "wołanie metody projektanta" o nazwie "
MyMeth1" w obiekcie, w którym znajduje się ten skrypt (obiekt ten jest dostępny przy pomocy zmiennej
pMe).
Równocześnie zostaną ustawione projektantem wprowadzane właściwości w obiekcie (który jest zapisany w
PrivateData): właściwość "
id" oraz "
val". Właściwości te będą dostępne podczas wołania akcji.
Wołanie akcji: W tej części zostanie akcja wywołana. Skrypt ten może zostać wywołany "kimkolwiek gdziekolwiek", musi tylko posiadać dostęp do wytworzonej akcji (dostęp do wartości
oAction).
Jeżeli akcja została ustawiona w dowolnym komponencie systemowym, wtedy projektant nie woła metody
Call (jest wywołana przez system).
Tym wołaniem zostanie wywołana metoda projektanta "
MyMeth1" (metoda zdefiniowana w karcie "
Metody"), która musi posiadać dwa parametry:
-
oSystem: Obiekt typu
PmMap. Właściwości tego obiektu
ustawia system według tego skąd dana akcja jest wołana.
-
oPrivate: Obiekt typu
PmMap. Właściwości tego obiektu
ustawia projektant w obiekcie
PmAction.PrivateData.
To znaczy, że obiekt ten zawiera wcześniej ustawione właściwości "
id" oraz "
val".
JavaScriptVBScriptWybierz oraz skopiuj do schowka
// Wytworzy akcję
var oAction = Pm.CreatePmAction(1, pMe, "MyMeth1");
oAction.PrivateData.id = "Temperatura";
oAction.PrivateData.val = 56;
// Wołanie akcji
oAction.Call();
' Wytworzy akcję
Dim oAction
Set oAction = Pm.CreatePmAction(1, pMe, "MyMeth1")
oAction.PrivateData.mapSetValueAt "id", "Temperatura"
oAction.PrivateData.mapSetValueAt "val", 56
' Wołanie akcji
oAction.Call