Promotic
Zalogowanie logon

AddEventTimer - metoda obiektu PmgRoot

Opis:
Rejestracja funkcji do wewnętrzego czasomierza panelu na jedorazowe lub wielokrotne wołanie po upływie określonego czasu.
Składnia:
Empty AddEventTimer(Long nTime, Long nType, String sFuncId, Function Func)
Parametry:
nTime(Long) Albo odcinek czasu (period lub timeout) w milisekundach, po którym dojdzie do wywołania funkcji
lub data oraz czas (typ danych Date), kiedy dojdzie do wywołania funkcji.
nType(Long) Typ wymógu wewnętrznego czasomierza.
0 - (lub -1 przestarzałe) Funkcja zostanie wywołana powtórnie z określonym periodem.
1 - Funkcja zostanie wywołana raz z określonym opóźnieniem (timeout).
2 - Funkcja zostanie wywołana raz z wprowadzoną datą i godziną. Metoda ta nie działa w Web panelach.
sFuncId(String) Identyfikator zarejestrowanej funkcji zdarzenia.
- Umożliwia usunięcie funkcji przy pomocy metody RemoveEventTimer.
- Uniemożliwia ponowne zarejestrowanie tej samej funkcji.
- Może zawierać dowolne znaki (nie jest to nazwa systemowa).
- Nie może być pusty łańcuch.
- Jest zalecane zastosowanie np. pełnej ścieżki do Pmg obiektu.
Func(Function) JavaScript funkcja zdarzenia, która zostanie wywołana timerem panelu.
Notatka:
Wewnętrzy czasomierz panelu umożliwia wytworzyć w panelu animacje (periodyczne wołanie), pilnować upłynięcie dozwolonego czasu dowolnego asynchronicznego zdarzenia (timeout) lub reagować na niektóre zdarzenia z opóźnieniem. To wszystko bez powiązania z odświeżaniem (refresh) panelu.
Metoda ta działa także w Web panelach.
Patrz również:
Przykład:
Przykład cyklicznego (10x) uruchomienia funkcji zdarzenia realizowany na dwa sposoby. Pierwsze podejście polega na cyklicznej nowej rejestracji funkcji pojedyńczego uruchomienia aż do kończ wymogu.
JavaScriptWybierz oraz skopiuj do schowka

function onTick()
{
Pm.Debug("onTick: tClick=" + Pm.FormatDate(tClicked, 1) + ", nCounter=" + nCounter);
if (nCounter-- > 0)
{
pMe.Root.AddEventTimer(1000, 1, pMe.GetPathName(), onTick);
}
}
var tClicked = Pm.Time;
var nCounter = 10;
pMe.Root.AddEventTimer(1000, 1, pMe.GetPathName(), onTick);
Drugie podejście polega na jednej rejestracji funkcji zdarzenia dla cyklicznego wołania, która zostanie odrejestrowana według wymogu. Równocześnie wykona animację ruchu obiektu "Ellipse" w panelu.
JavaScriptWybierz oraz skopiuj do schowka

function onTick()
{
Pm.Debug("onTick: tClick=" + Pm.FormatDate(tClicked, 1) + ", nCounter=" + nCounter);
oObject.X += 5;
oObject.Refresh();
if (nCounter-- < 0)
{
pMe.Root.RemoveEventTimer(pMe.GetPathName(), onTick);
}
}
var tClicked = Pm.Time;
var nCounter = 10;
var oObject = pMe.Items("/Ellipse");
pMe.Root.AddEventTimer(60, 0, pMe.GetPathName(), onTick);

Historia:
Pm9.00.25: Nowa opcja 2 w parametrze nType
Pm9.00.16: Nowy parametr sFuncId
Pm9.00.06: Wytworzono
© MICROSYS, spol. s r.o.Update cookies preferences