Promotic

onKeyPress - zdarzenie obiektu PmaRoot

Opis:
Zdarzenie zostanie wywołane po naciśnięciu lub zwolnieniu dowolnego klawisza.
Parametry:
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.Action - (Long) [do odczytu] Indykacja naciśnięcia lub zwolnienia klawisza.
0 - zwolnienie klawisza
1 - naciśnięcie klawisza
pEvent.Code - (Long) [do odczytu] Kod naciśniętego klawisza. W przypadku znaku ANSI jest wartość zgodna z kodem znaku, pozostałe kody patrz Stałe klawiszy.
Do konwersji tego kodu liczbowego na String można zastosować metodę Pm.StringCodeFrom
pEvent.Ctrl - (Boolean) [do odczytu] Indykacja równocześnie naciśniętego klawisza Ctrl.
pEvent.Shift - (Boolean) [do odczytu] Indykacja równocześnie naciśniętego klawisza Shift.
pEvent.Alt - (Boolean) [do odczytu] Indykacja równocześnie naciśniętego klawisza Alt.
Notatka:
Zdarzenie posiada takie same parametry jak zdarzenie PmgObject.onKeyPress lub zdarzenie PmaPanel.onKeyPress.
Patrz również:
- PmaPanel.onKeyPress (zdarzenie)
- PmaKey (obiekt)
Przykład:
Przedstawiony przykład jest w formie, kiedy jest automatycznie wytwarzany podczas założenia nowej aplikacji. Są w nim zdefiniowane klawisze 'skrótu':
- Ctrl-S do zatrzymania aplikacji - Pm.AppStop
- Ctrl-I do otwarcia INFO systemu
- Ctrl-P do zalogowania użytkownika lokalnego - Pm.WndLogon
- Ctrl-O do wylogowania użytkownika lokalnego - Pm.WndLogoff
- Ctrl-G do otwarcia listy paneli
- Ctrl-A do otwarcia okna grup alarmów
- Ctrl-E do otwarcia okna grup eventów
JavaScriptWybierz oraz skopiuj do schowka

var oCreator;
var sTarget;
function onViewClose(ev)
{
if (ev.CloseReason == "ok")
{
var sViewer = ev.ReturnValue;
if (Pm.IsValid(sViewer))
{
Pm.CreateView(Pm.GetActiveWorkspace(), sViewer, "", sTarget).Open();
}
}
}


if (pEvent.Action == 0 && pEvent.Ctrl && ! pEvent.Shift && ! pEvent.Alt)
{
switch (pEvent.Code)
{
case 83:   // Klawisz S
Pm.AppStop();
break;
case 73:   // Klawisz I
Pm.CreateView(Pm.GetActiveWorkspace(), "/#glob/infosystem", "", "target:_blank;").Open();
break;
case 80:   // Klawisz P
Pm.WndLogon(true);
break;
case 79:   // Klawisz O
Pm.WndLogoff(true);
break;
case 71:   // Klawisz G
sTarget = "target:main;";
oCreator = Pm.CreateView(Pm.GetActiveWorkspace(), "/#glob/list", "autoselect:1", "target:_blank;modal:1;size:300,350;");
oCreator.View.list = Pm.FindViewers("groups:menu;viewers:panel;", "", "headers:;columns:path,title;");
oCreator.View.title = Pm.EvalMacro("$.text('sys','panelsName')");
oCreator.View.onClose = onViewClose;
oCreator.Open();
break;
case 65:   // Klawisz A
sTarget = "target:_blank.alarms;size:1000,500;";
oCreator = Pm.CreateView(Pm.GetActiveWorkspace(), "/#glob/list", "autoselect:1", "target:_blank;modal:1;");
oCreator.View.list = Pm.FindViewers("groups:menu;viewers:alarm_state;", "", "columns:path,title,alstate3,alstate2,alstate1,alhoot;");
oCreator.View.title = Pm.EvalMacro("$.text('sys','alarmsName')");
oCreator.View.onClose = onViewClose;
oCreator.Open();
break;
case 69:   // Klawisz E
sTarget = "target:_blank.events;size:1000,500;";
oCreator = Pm.CreateView(Pm.GetActiveWorkspace(), "/#glob/list", "autoselect:1", "target:_blank;modal:1;");
oCreator.View.list = Pm.FindViewers("groups:menu;viewers:event;", "", "columns:path,title;");
oCreator.View.title = Pm.EvalMacro("$.text('sys','eventsName')");
oCreator.View.onClose = onViewClose;
oCreator.Open();
break;
}
}
© MICROSYS, spol. s r.o.