Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onAppStopBegin - událost objektu PmaRoot

Popis:
Událost je vyvolána po pokynu k zastavení aplikace.
Parametry:
pMe(Object) Reference na PmaRoot objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt, který popisuje informace o dané události.
pEvent.Type - (String) Typ zastavení aplikace.
"Stop" - Normální zastavení aplikace vyvolané metodou Pm.AppStop(0) nebo zavřením hlavního okna aplikace. Toto normální zastavení aplikace se ještě dá potlačit potvrzovacím dialogem nebo v události PmaRoot.onAppStopBegin.
"HardStop" - Zastavení aplikace vyvolané metodou Pm.AppStop(1) nebo selháním vnitřní komponenty nebo licence. Toto zastavení aplikace se už nedá potlačit potvrzovacím dialogem nebo v události PmaRoot.onAppStopBegin.
"Logoff" - Odhlášení uživatele přihlášeného do OS Windows, viz Pm.ShutDown(0, false) Zastavované aplikace jsou dotazovány, zda ukončit jejich činnost.
"HardLogoff" - Odhlášení uživatele přihlášeného do OS Windows, viz Pm.ShutDown(0, true) Zastavované aplikace budou ukončeny násilně bez dotazu (může dojít ke ztrátě dat).
"Reboot" - Restart (reboot) počítače s OS Windows, viz Pm.ShutDown(1, false) Zastavované aplikace jsou dotazovány, zda ukončit jejich činnost.
"HardReboot" - Restart (reboot) počítače s OS Windows, viz Pm.ShutDown(1, true) Zastavované aplikace budou ukončeny násilně bez dotazu (může dojít ke ztrátě dat).
"Shutdown" - Vypnutí počítače s OS Windows, viz Pm.ShutDown(2, false) Zastavované aplikace jsou dotazovány, zda ukončit jejich činnost.
"HardShutdown" - Vypnutí počítače s OS Windows, viz Pm.ShutDown(2, true) Zastavované aplikace budou ukončeny násilně bez dotazu (může dojít ke ztrátě dat).
pEvent.Error - (Long) Pokud hodnota parametru je 0, pak je aplikace ukončována pokynem uživatele (projektanta) - tzn. voláním metody Pm.AppStop nebo Pm.AppQuit. V jiném případě (hodnota je nenula) je aplikace ukončena z důvodu selhání některé komponenty (např. ActiveX objektu, atd.).
pEvent.Enabled - (Boolean) Povolení/zákaz normálního zastavení aplikace. Hodnota tohoto parametru je přednastavena na true. Pokud hodnota vlastnosti je true, pak je povoleno normální zastavení aplikace. Pokud hodnota vlastnosti je false, pak není povoleno normální zastavení aplikace. Tímto způsobem lze například povolit/zakázat normální zastavení aplikace na základě nějaké podmínky nebo provést zpožděné zastavení aplikace apod.
Poznámka:
Po této události jsou postupně rušeny Pma objekty (je vyvolána událost onStop těchto objektů) a nakonec je vyvolána událost onAppStopEnd.
 
Zákazat ukončení aplikace lze nastavit pomocí oprávnění "PmaRoot > Oprávnění > AppStop".
Viz také:
- Pm.AppStop (metoda)
- Pm.ShutDown (metoda)
Příklad1:
Pozdrží zastavení aplikace, aby metoda projektanta "SaveConfigApp" mohla provést vše potřebné před ukončením
JavaScriptVyber a zkopíruj do schránky

function onTimeOut()
{
Pm.AppStop(1);  //will by called "onAppStopBegin" with pEvent.Type == "HardStop"
}

if (pEvent.Type == "Stop")
{
pEvent.Enabled = false;
pMe.Root.AddEventTimer(5000, 1, onTimeOut);
pMe.Methods.SaveConfigApp();  //user method
}
Příklad2:
Otevře okno "PmForm" s odpočtem času ukončení aplikace, s možností potvrzení které aplikaci ukončí ihned.
JavaScriptVyber a zkopíruj do schránky

var nSecStop = 15;  //number of seconds until the application stops
var oPmfTimeout;

function onTimeOut()
{
if (nSecStop <= 0)
Pm.AppStop(1);  //will by called "onAppStopBegin" with pEvent.Type == "HardStop"

oPmfTimeout.Value = "Application stops in " + nSecStop + " seconds";
nSecStop--;
}

function onViewClose(ev)
{
if (ev.CloseReason == "ok")
nSecStop = 0;
else
pMe.Root.RemoveEventTimer(onTimeOut, 0);
}

function onViewLoad(ev)
{
var oForm = ev.Form;
oForm.Title = "Application stop";

oForm.CreateItem("separ", "separ", "", "Subtype:space;TitlePos:no;BodyHeightIni:1;");

oPmfTimeout = oForm.CreateItem("string", "msg", "", "Subtype:static;TitlePos:no;Multiline:1;ValueHorzAlign:center;");
oPmfTimeout.Value = "Application stops in " + nSecStop + " seconds";
}

if (pEvent.Type == "Stop")
{
pEvent.Enabled = false;
pMe.Root.AddEventTimer(1000, -1, onTimeOut);

var oCreator = Pm.CreateView(pMe.PmPanel, "/#glob/form", "", "target:_blank;modal:1;");
oCreator.View.onLoad = onViewLoad;
oCreator.View.onClose = onViewClose;
oCreator.Open();
pMe.Methods.SaveConfigApp();  //user method
}
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice