Promotic

onStep - zdarzenie obiektu PmaSequencer

Opis:
Zdarzenie jest wywołane kiedy pozycja zostanie zwolniona.
Parametry:
pMe(Object) Odniesienie do PmaSequencer obiektu, w którym dane zdarzenie powstaje.
pEvent(Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.ReleaseType - (Long) [do odczytu] Przyczyna zwolnienia pozycji:
0 - pozycja nie czekała, tzn. w metodzie Add był timeout=0
1 - pozycja czekała a timeout wygasł
2 - pozycja czekała oraz została wywołana metoda Release
pEvent.ReleaseCancel - (Boolean) [do odczytu i zapisu] Wstępnie ustawioną wartością jest false.
Jeżeli zostanie ustawione na true, wtedy pozycja kontynuuje bez czekania (tylko jeżeli zdarzenie zostanie wywołane przez wywołanie metody Release, tzn. jeżeli pEvent.ReleaseType=2).
pEvent.Val1 - (Variant) [do odczytu] 1. wartość pozycji.
pEvent.Val2 - (Variant) [do odczytu] 2. wartość pozycji.
pEvent.Val3 - (Variant) [do odczytu] 3. wartość pozycji.
Notatka:
Zdarzenie jest wywołane albo w wątku głównym lub w wątku roboczym. Zastosowanie głównego lub roboczego wątku określa się w konfiguratorze "Zastosowany wątek (thread)" oraz parametrem Params metody Add.

Uwaga: Obiekt PmaSequencer jest unikalnym, ponieważ jego zdarzenie onStep zostanie wywołane w głównym lub roboczym wątku ("thread:work;" lub "thread:main;"). Dlatego metody zostały wewnętrznie podwojone oraz zkompilowane jak w wątku głównym tak w wątku roboczym. Jeżeli metoda zostanie wywołana z wątku roboczego, wtedy zostanie wykonana bezpośrednio w nim. W innych przypadkach identycznie jak w przypadku metod innych obiektówzostanie wykonana w wątku głównym.
To umożliwia proste tworzenie funkcji pomocniczych tak, by zdarzenie onStep mogło być bardziej przejżyste. Nawet podczas zmiennego wołania zdarzenia onStep w głównym lub roboczym wątku, zostanie wtedy automatycznie wywołana metoda w tymże wątku.
Przykład1:
Z opóźnieniem 2 sekund będą kolejno uruchamiane skrypty reprezentujące akcje "A", "B" oraz "C".
JavaScriptVBScriptWybierz oraz skopiuj do schowka

switch (pEvent.Val1)
{
case "A":
// Wykonaj akcję A
pMe.Add(2, "B", 1);
break;
case "B":
// Wykonaj akcję B
pMe.Add(2, "C", 1);
break;
case "C":
// Wykonaj akcję C
pMe.Add(2, "A", 1);
break;
}
© MICROSYS, spol. s r. o.