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ı
| Olay | Sunulduğu nesneler | Ne zaman |
|---|---|---|
onClick | Tüm nesneler | Sol fare düğmesi sürüklemeden bırakılınca |
onMiddleClick | Tüm nesneler | Orta fare düğmesiyle tıklanınca |
onRightClick | Tüm nesneler | Sağ fare düğmesiyle tıklanınca (bağlam menüsü) |
onDblClick | Tüm nesneler | Nesneye çift tıklanınca |
onMouseEnter | Tüm nesneler | İmleç nesneye girince |
onMouseLeave | Tüm nesneler | İmleç nesneden çıkınca |
onMouseDown | Tüm nesneler | Nesne üzerinde bir fare düğmesine basılınca |
onValueChange | Input, Select, Switch, Slider | Değer değişince; giriş kutusunda her tuşta ve onaylanınca bir kez daha |
onKeyDown | Input | Giriş kutusunda bir tuşa basılınca |
onKeyUp | Input | Giriş kutusunda bir tuş bırakılınca |
onFocus | Input, Select | Denetim odağı alınca |
onBlur | Input, Select | Denetim 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, elementId | Olay adı, hedef ve nesnenin kimliği |
x, y | Nesne içindeki konum |
clientX, clientY | Ekrandaki konum |
button | Fare düğmesi: 0 sol, 1 orta, 2 sağ |
key, code | Klavye olayının tuşu |
altKey, ctrlKey, shiftKey | Basılı değiştirici tuşlar |
value, prevValue | Giriş 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 |
|---|---|
onLoad | Sayfa açılınca bir kez |
onUnload | Sayfa 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.