Promotic

onStep - událost objektu PmaSequencer

Popis:
Událost je vyvolána když se položka uvolní.
Parametry:
pMe(Object) Reference na PmaSequencer objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt, který popisuje informace o dané události.
pEvent.ReleaseType - (Integer) Příčina uvolnění položky:
0 - položka nečekala, tzn. v metodě Add byl timeout=0
1 - položka čekala a timeout vypršel
2 - položka čekala a byla zavolána metoda Release
pEvent.ReleaseCancel - (Boolean) Přednastavená hodnota je false.
Pokud se nastaví na true, pak položka pokračuje v čekání (pouze pokud událost je vyvolána voláním metody Release, tzn. pokud pEvent.ReleaseType=2).
pEvent.Val1 - (Variant) 1. hodnota položky.
pEvent.Val2 - (Variant) 2. hodnota položky.
pEvent.Val3 - (Variant) 3. hodnota položky.
Poznámka:
Událost je vyvolána buď v hlavním vlákně nebo v pracovním vlákně. Použití hlavního nebo pracovního vlákna se zadává v konfigurátoru "Použité vlákno (thread)" a parametrem Params metody Add.

Upozornění:
Objekt PmaSequencer je vyjímečný, protože jeho událost onStep je vyvolána v hlavním nebo pracovním vlákně ("thread:work;" nebo "thread:main;"). Proto byly metody interně zdvojeny a přeloženy jak v hlavním vlákně, tak v pracovním vlákně. Pokud se metoda vyvolá z pracovního vlákna, pak bude provedena přímo v pracovním vlákně. V ostatních případech se stejně jako u metod ostatních objektů provede v hlavním vlákně.
Toto umožňuje snadné vytvoření pomocných funkcí tak, aby událost onStep mohla být přehlednější. Dokonce i při střídavém vyvolávaní události onStep v hlavním nebo pracovním vlákně je pak automaticky volána metoda v tomtéž vlákně.
Příklad1:
S prodlevou 2 sekund se budou opakovaně spouštět skripty reprezentující akci "A", "B" a "C".
JavaScriptVBScriptVyber a zkopíruj do schránky

switch (pEvent.Val1)
{
case "A":
// Provést akci A
pMe.Add(2, "B", 1);
break;
case "B":
// Provést akci B
pMe.Add(2, "C", 1);
break;
case "C":
// Provést akci C
pMe.Add(2, "A", 1);
break;
}
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice