pMe | (Object) Odniesienie do PmaRoot obiektu, w którym dane zdarzenie powstaje. |
---|---|
pEvent | (Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.Type - (String) [do odczytu] Typ zatrzymania aplikacji.
"Stop" - Normalne zatrzymanie aplikacji wywołane metodą Pm.AppStop(0) lub zamknięciem głównego okna aplikacji. Ten sposób zatrzymania aplikacji można uwarunkować oknem potwierdzającym lub w zdarzeniu PmaRoot.onAppStopBegin.
"HardStop" - Zatrzymanie aplikacji wołane metodą Pm.AppStop(1) lub awarią elementu wewnętrznego lub licencji. Taki sposób zatrzymania aplikacji nie można uwarunkować oknem potwierdzającym lub w zdarzeniu PmaRoot.onAppStopBegin.
"Logoff" - Wylogowanie użytkownika zalogowanego do SO Windows, patrz Pm.ShutDown(0, false) Zatrzymywane aplikacje zostaną zapytane, czy zakończyć ich działanie.
"HardLogoff" - Wylogowanie użytkownika zalogowanego do SO Windows, patrz Pm.ShutDown(0, true) Zatrzymywane aplikacje zostaną bezwarunkowo zakończone (może dojść do utraty danych).
"Reboot" - Restart (reboot) komputera z SO Windows, patrz Pm.ShutDown(1, false) Zatrzymywane aplikacje zostaną zapytane, czy zakończyć ich działanie.
"HardReboot" - Restart (reboot) komputera z SO Windows, patrz Pm.ShutDown(1, true) Zatrzymywane aplikacje zostaną bezwarunkowo zakończone (może dojść do utraty danych).
"Shutdown" - Wyłaczenie komputera z SO Windows, patrz Pm.ShutDown(2, false) Zatrzymywane aplikacje zostaną zapytane, czy zakończyć ich działanie.
"HardShutdown" - Wyłaczenie komputera z SO Windows, patrz Pm.ShutDown(2, true) Zatrzymywane aplikacje zostaną bezwarunkowo zakończone (może dojść do utraty danych). pEvent.Error - (Long) [do odczytu] Jeżeli wartość parametru jest 0, wtedy aplikacja jest zatrzymywana przez polecenie użytkownika (projektanta) - tzn. przez wywołanie metody Pm.AppStop.
W innym przypadku (wartość jest różna od 0) aplikacja jest zatrzymywana z powodu błędu niektórego z komponentów (np. ActiveX obiektu, itd.). pEvent.Enabled - (Boolean) [do odczytu] Zezwolenie/zakaz normalnego zatrzymania aplikacji. Wartość tego parametru jest wstępnie ustawiona na true. Jeżeli wartość właściwości jest true, wtedy jest zezwolone normalne zatrzymanie aplikacji. Jeżeli wartość właściwości jest false, wtedy nie jest zezwolone normalne zatrzymanie aplikacji. W ten sposób można na przykład zezwolić/zabronić normalne zatrzymanie aplikacji na podstawie dowolnego warunku lub wykonać opóźnione zatrzymanie aplikacji itd. |
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, pMe.GetPathName(), onTimeOut);
pMe.Methods.SaveConfigApp();
// user method
}
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("StopOut", 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, "StopOut", 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
}