Akcia špecifikuje procedúru (prostredníctvom mena
procName), ktorá bude zavolaná, ak nastane zmena hodnoty
objIdent (alebo niektorej zo skupiny hodnôt). Hodnota musí byť odvodená od mena objektu (nie od lokálnej
premennej).
Napríklad:
Skupina hodnôt predstavuje riadok, stĺpec alebo celý objekt typu
Štruktúrovaná premenná.
Napríklad:
- identifikátor druhého riadku - SV.Struktura[2] (nie je uvedené meno stĺpca)
- identifikátor stĺpca Int - SV.Struktura[0]^Int (index riadku je 0)
- identifikátor všetkých hodnôt (celej štruktúry) - SV.Struktura alebo SV.Struktura[0]
(index riadku je 0).
Sledovanú hodnotu je možné identifikovať aj prostredníctvom výrazu typu
HOBJ alebo
VOBJ.
Napríklad:
INT _hbj
...
ON CHANGE (_hbj) GOTO ValueChanged |
Po vykonaní akcie, napríklad:
ON CHANGE Sec GOTO ValueChanged |
bude procedúra s menom
ValueChanged zavolaná vždy, keď príde k zmene hodnoty objektu
Sec (t.j. každú sekundu).
Ak sa v rámci skriptu vykoná akcia:
ON CHANGE Sec GOTO ValueChanged NONE |
bude volanie procedúry
ValueChanged pri zmene hodnoty objektu
Sec ukončené.
V zápise akcie je možné uviesť aj položku štruktúry:
ON CHANGE SV.Struktura[2]^Int GOTO ValueChanged |
Na zmenu jednej hodnoty je možné reagovať aj na viacerých procedúrach:
ON CHANGE Sec GOTO ValueChanged
ON CHANGE Sec GOTO ValueChanged1 |
V tomto prípade budú pri zmene objektu
Sec postupne volané procedúry
ValueChanged a
ValueChanged1.
Procedúra, ktorá je volaná na základe zmeny hodnoty musí byť deklarovaná nasledovne:
PROCEDURE ProcName(typHodnoty _hodnota, ALIAS _odkazNaObjekt, INT _riadok, INT _stlpec) |
Kde:
ProcName |
Meno procedúry, ktoré vyhovuje obmedzeniam pre meno procedúry. |
typ_hodnoty |
Typ hodnoty parametra _hodnota. Ak je typ nevhodne zvolený (vzhľadom na zmenenú hodnotu), parameter bude
nadobúdať neplatnú hodnotu. |
_hodnota |
Parameter, ktorý bude po štarte procedúry naplnený novou hodnotou sledovaného objektu (alebo položky pri
sledovaní zmeny položky štruktúry). |
_odkazNaObjekt |
Parameter typu ALIAS. Po štarte procedúry je inicializovaný tak, aby sa odkazoval na objekt, ktorý
zmenil hodnotu (ak je sledovaná položka štruktúry, tak ALIAS sa odkazuje na celú štruktúru nie na položku). |
_riadok, _stlpec |
Parametre typu INT. Majú význam len ak bola procedúra zavolaná z dôvodu zmeny hodnoty políčka
štruktúrovanej premennej. Ináč sú vždy nastavené na hodnotu 0. V prípade zmeny
hodnoty políčka parameter _riadok obsahuje poradové číslo riadku a parameter _stlpec obsahuje poradové
číslo stĺpca v rámci hodnoty príslušnej štruktúrovanej premennej. |
Akcia je použiteľná len v rámci skriptu
Aktívnej schémy alebo objektu typu
Event s aktívnou voľbou
Server Event.