Master funkcie sú funkcie, ktoré modifikujú výsledok nastavenia objektov inými funkciami. Vyznačujú sa textom Master v názve funkcie.
Master funkcie členíme do dvoch skupín:

  • Set - nastavujú a rušia preťaženie / modifikáciu
  • Get - zisťujú aktuálny stav preťaženia

Funkcie pre nastavenie %HI_Set...Master... pracujú v štýle preťaženie + zákaz vlastnosti a zrušenie preťaženia. Umožňujú zablokovať prístup k objektom alebo ich časti, bez ovplyvnenia chodu skriptu používajúceho ovládanie správania sa objektov. Pôvodné, preťažené funkcie si neuvedomujú preťaženie a pracujú po starom. Aj pri získavaní stavu objektov dostávajú hodnoty, ako keby objekty neboli preťažené.
Napríklad: viditeľný objekt sa preťažením funkciou %HI_SetMasterVisible stal neviditeľným, ale funkcia %HI_GetVisible dostáva informáciu, že objekt je viditeľný.

Funkcie %HI_Get...Master... získavajú aktuálny stav preťaženia objektu nastavený funkciami %HI_Set...Master... .

Funkčnosť správania sa si ukážeme na príklade funkcií %HI_SetMasterVisible, %HI_GetMasterVisible, %HI_SetVisible, %HI_GetVisible.

%HI_SetMasterVisible / %HI_GetMasterVisible %HI_SetVisible / %HI_GetVisible Skutočná viditeľnosť
True / True True / True Objekt je viditeľný.
True / True False / False Objekt nie je viditeľný.
False / False True / True Objekt nie je viditeľný.
False / False False / False Objekt nie je viditeľný.

Správanie sa funkcií typu Master je nastavené tak, aby bolo možné ľahko urobiť prispôsobenie sa správania odladených skriptov zmene externých podmienok, napr. zmene prihláseného užívateľa, či už zákazom niektorých činností alebo vytvorenia užívateľského pohľadu na aplikáciu.


Príklad použitia

Schéma obsahuje tlačidlo sprístupňujúce históriu schémy. Povolenie stlačenia tohto tlačidla je riadené funkciou %HI_SetEnable. V D2000 HI sa zmení prihlásený užívateľ, ktorý nemá povolený prístup k histórii. Pomocou funkcie %HI_SetMasterEnable zablokujeme pri prihlásení užívateľa používanie tohto tlačidla. Po prihlásení užívateľa s právom používať toto tlačidlo, má povolený stav, aký bol pred zablokovaním nastavený funkciou %HI_SetEnable. Počas zablokovania funkcia %HI_GetEnable vracia hodnotu akú by mal objekt, keby nebol zablokovaný funkciou %HI_SetMasterEnable. Tieto blokovania a odblokovania neovplyvňujú naprogramované správanie v skripte a je ich preto možné jednoducho dopracovať do pôvodných skriptov.

 ENTRY OnLogOn(IN TEXT _userName, IN BOOL _bLogOn)
  IF _userName="Operator1" THEN
 
   ; Operator1 má zakázaný prístup do histórie
   %HI_SetMasterEnable(_BtnStartHistorie,@FALSE)
  ELSIF ! _bLogOn THEN
 
   ; prístup do histórie je zakázaný, ak nie je nikto prihlásený
   %HI_SetMasterEnable(_BtnStartHistorie,@FALSE)
  ELSE
 
   ; v ostatných prípadoch nie je prístup do histórie blokovaný Master funkciou
   %HI_SetMasterEnable(_BtnStartHistorie,@TRUE)
  ENDIF
 END OnLogOn 

Zoznam Master funkcií a funkcií, ktoré preťažujú


Napíšte komentár