Akcia ENTRY - obsluha udalosti


Deklarácia

ENTRY EntryName [([IN] type1 paramName1[,paramName2, ...] [IN] type2 paramName3]...)]
 ; akcie
 END EntryName

 

ENTRYX EntryName [([IN] type1 paramName1[,paramName2, ...] [IN] type2 paramName3]...)]
; akcie
END
EntryName


Parametre
EntryName Meno udalosti. Meno musí byť jedno z možných udalostí.
type1 Typ prvého parametra.
paramName1 Meno prvého parametra.
type2 Typ druhého parametra.
paramName2 Meno druhého parametra.
....  

Poznámka:
Parametre udalosti sú dané jej typom. Iná kombinácia parametrov ako prípustná nie je povolená.
Maximálny počet parametrov je 10.


Popis
Akcia uvádza obsluhu konkrétnej udalosti. Obsluha udalosti je v podstate špecializovaná procedúra uvedená kľúčovým slovom ENTRY (alebo ENTRYX).

Udalosti generované grafickými objektmi môžu byť obsluhované dvoma spôsobmi:

  • Špeciálna obsluha udalosti pre grafický objekt.
  • Globálna obsluha udalosti daného typu pre všetky grafické objekty.

Prvá možnosť (špeciálna obsluha) obsluhuje udalosti generované jediným grafickým objektom. Takáto obsluha má špeciálne meno zložené z mena grafického objektu (Referenčná lokálna premenná schémy pripojená na grafický objekt) a menom udalosti. Tým je jednoznačne definované meno obsluhy (napríklad BtnOK_OnClick. _BtnOK je Referenčná lokálna premenná pripojená na grafický objekt a OnClick je typ udalosti.).

Druhá možnosť (globálna obsluha) obsluhuje všetky udalosti daného typu (napríklad OnClick) pre všetky grafické objekty, ktoré nemajú definovanú špeciálnu obsluhu danej udalosti.

Ak je obsluha udalosti uvedená kľúčovým slovom ENTRYX, požiadavky na obsluhu udalostí budú redukované tak, aby sa obslúžila posledná ešte neobslúžená. Pri vzniku novej udalosti budú všetky udalosti rovnakého typu čakajúce na obsluhu ignorované.

Kľúčové slovo ENTRYX nie je možné použiť pre nasledovné udalosti OnClose, OnPopUpMenu_Result, OnSubPictureClosed, OnAXEvent, OnItemValidate, OnFetchDone, OnUserInput.


Príklad
Špeciálna obsluha udalosti:
 
; obsluha udalosti: Stlačenie tlačidla myši nad grafickým
 ; objektom, ku ktorému je pripojená Referenčná premenná _BtnOK
ENTRY BtnOK_OnClick
   %HI_ClosePicture() ; zatvorenie schémy
 END BtnOK_OnClick

 

Globálna obsluha udalosti:


 
; obsluha udalostí: Stlačenie tlačidla myši nad grafickými
 ; objektami, ktoré nemajú definovanú špeciálnu obsluhu
ENTRY OnClick(IN  INT _refId)
; _refId - hodnota Referenčnej lokálnej premennej schémy ktorá je
 ; pripojená ku grafickému objektu
   IF _refId = _BtnOK THEN ; test ktorý určí, nad ktorým grafickým
                           ; objektom bola stlačená myš
     %HI_ClosePicture()    ; zatvorenie schémy
   ENDIF
 END OnClick
 

 

Poznámka:
Ak sú v jednom skripte definované obidvoje obsluhy, globálna nebude nikdy zavolaná pre _refId=_BtnOK, lebo  existuje špeciálna obsluha.



Súvisiace stránky:

Napíšte komentár