Ana içeriğe geç

Nesne ve sayfa olayları

Olay betiği, operatör çalışma ekranında bir nesneyle ya da sayfayla bir şey yaptığında çalışır. PROPERTIES içindeki Events (Olaylar) sekmesinde ayarlanır; bkz. İstemci betikleri. Olay adları çevrilmeden, oldukları gibi gösterilir.

Nesne olayları​

OlaySunulduğu nesnelerNe zaman
onClickTüm nesnelerSol fare düğmesi sürüklemeden bırakılınca
onMiddleClickTüm nesnelerOrta fare düğmesiyle tıklanınca
onRightClickTüm nesnelerSağ fare düğmesiyle tıklanınca (bağlam menüsü)
onDblClickTüm nesnelerNesneye çift tıklanınca
onMouseEnterTüm nesnelerİmleç nesneye girince
onMouseLeaveTüm nesnelerİmleç nesneden çıkınca
onMouseDownTüm nesnelerNesne üzerinde bir fare düğmesine basılınca
onValueChangeInput, Select, Switch, SliderDeğer değişince; giriş kutusunda her tuşta ve onaylanınca bir kez daha
onKeyDownInputGiriş kutusunda bir tuşa basılınca
onKeyUpInputGiriş kutusunda bir tuş bırakılınca
onFocusInput, SelectDenetim odağı alınca
onBlurInput, SelectDenetim odağı kaybedince

Sol, orta ve sağ tıklama için Events sekmesi betiksiz bir tıklama Action'ı (Aksiyon) ve popup açma ya da kapatma da sunar; bkz. Tıklama eylemleri.

Sayfa olayları​

Sayfanın, sayfa arka planında (nesne olmayan yerde) dört olayı vardır: onClick, onDblClick, onMouseEnter ve onMouseLeave. Sayfanın açılması ve terk edilmesi olay değildir: onLoad ya da onUnload tetikleyicili bir sayfa betiği kullanın.

İşleyici​

İşleyici, project_main.js içinde olayı alan bir async işlevdir:

async function Overview_StartButton_onClick(event) {
if (await UI.confirm("P101 pompası başlatılsın mı?")) {
await Tag("P101.Start").write(true);
}
}
event alanıAnlamı
type, target, elementIdOlay adı, hedef ve nesnenin kimliği
x, yNesne içindeki konum
clientX, clientYEkrandaki konum
buttonFare düğmesi: 0 sol, 1 orta, 2 sağ
key, codeKlavye olayının tuşu
altKey, ctrlKey, shiftKeyBasılı değiştirici tuşlar
value, prevValueGiriş kutusunun yeni ve önceki değeri; yoksa nesneye bağlı sinyalin değeri

İşleyicide self nesnenin kendisidir: bir özelliği okumak şimdiki değerini verir, atamak onu sayfa açık kaldıkça ekranda değiştirir (self.fill = "@alarm_critical"). Bir popup'ta modal, data'sı ve close()'u ile o popup'tır. Tüm istemci betiği işlevleri kullanılabilir.

Birkaç olay işleyicisinin ortak kullandığı kodu project_main.js'e koyun.

Sayfa betiği tetikleyicileri​

Sayfa betikleri operatör eylemi olmadan çalışır. Her sayfa betiğinin bir Trigger'ı (Tetikleyici) vardır:

TetikleyiciÇalışır
onLoadSayfa açılınca bir kez
onUnloadSayfa terk edilince bir kez; betiklerin kurduğu zamanlayıcılar ve ekran değişiklikleri hemen ardından silinir
Periodic (Periyodik)Her Interval (ms)'de, en az 500 ms; önceki çalışma sürerken bir tur atlanır
Tag Change (Tag değişimi)Tag Name'deki sinyal değişince; 500 ms'de bir denetlenir, ilk değer yalnız başlangıç noktasıdır

Sayfanın <sayfa>_main.js'i sayfa açılınca onLoad gibi çalışır. Sayfa açılırken sıra: önceki sayfanın betikleri durur (onUnload), kütüphaneler yüklenir, <sayfa>_main.js çalışır, sonra tetikleyiciler başlar. Yalnız sayfanın nesneleri değiştiyse betikler yeniden başlatılmaz.