Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Úvod do jazyka OPL (15)

aktualizováno 
Pokračujeme v pokročilejším programování v OPL.

Seznam možností v menu

Dalším rozšířením uživatelské nabídky je uvedení seznamu možností, ze kterého může být aktivní pouze jedna položka. Možnosti seznamu musí být všechny na jedné kartě a musí následovat za sebou. Ke konstantě pro klávesovou zkratku první z možností je potřeba přičíst hodnotu $0900 (KMenuOptionStart%), u poslední z možností konstantu $0B00 (KMenuOptionEnd%) a ke všem zbývajícím mezi nimi konstantu $0A00 (KMenuOptionMiddle%). Ke konstantě u zvolené položky menu musíme pak přičíst hodnotu $2000 (KMenuSymbolOn%).

INCLUDE "Const.oph"

PROC menu:
  GLOBAL polozka%
  LOCAL k%, m%, k_1%, k_2%, k_3%
  PRINT "Stiskni Menu pro nabídku Esc pro konec"
  WHILE 1
    k%=GET
    IF k%=KKeyEsc% 
      STOP
    ELSEIF k%=KGetMenu%
      
      k_1%=0 : k_2%=0 : k_3%=0 
      IF polozka%=3
        k_3%=KMenuSymbolOn%
      ELSEIF polozka%=2
        k_2%=KMenuSymbolOn%
      ELSE
        k_1%=KMenuSymbolOn%
      ENDIF
      
      mINIT
      mCARD "Soubor", "Nový", %n, "Otevřít", %o, "Konec", %e
      mCARD "Velikost", "1x", 1+$0900+k_1%, "2x", 2+$0A00+k_2%, "3x", 3+$0B00+k_3%
      m%=MENU
      PRINT "Volba z menu byla "; m%; " (";CHR$(m%); ")"
      
      IF m%=1 OR m%=2 OR m%=3
        polozka%=m%
      ENDIF
 
      IF m%=%e : STOP : ENDIF
    ENDIF
  ENDWH
ENDP

Kaskádová menu

mCASC jmeno$, text_1$, klavesa_1%, text_2$, klavesa_2%, ...

Pokud je menu příliš komplexní a všechny položky by se nevešly na displej, tak je možné vytvářet kaskádová menu - po zvolení jedné položky menu, která je většinou označena šipkou, se zobrazí další nabídka. Tyto podřízené nabídky definujeme pomocí příkazu mCASC.

Příkaz mCASC má stejnou strukturu i parametry jako mCARD - začíná jménem kaskádového menu a pokračuje definicí položek. I ve vnořených nabídkách můžeme používat zaškrtnutí nebo seznamy možností.

Definice vnořeného menu musí předcházet definici karty menu, ve které je kaskádové menu použito. V definici hlavního menu uvedeme jméno kaskádového menu, za kterým bude uveden znak ">". Můžeme uvést i konstantu pro klávesovou zkratku - v takovém případě bude tato kombinace kláves cyklicky přepínat položky kaskádového menu. Většinou však tuto možnost nevyužijeme a místo kódu klávesy použijeme číslo mezi 1 a 32.

INCLUDE "Const.oph"

PROC kaskada:
  LOCAL k%, m%
  PRINT "Stiskni Menu pro nabídku Esc pro konec"
  WHILE 1
    k%=GET
    IF k%=KKeyEsc% 
      STOP
    ELSEIF k%=KGetMenu%
      mINIT
      mCASC "Tisk", "Prohlédnout", %p, "Tisk", %t
      mCASC "Infračervené", "Pošli", %P, "Příjem", %R
      mCARD "Soubor", "Nový", %n, "Otevřít", -%o, "Tisk>", 1, "Infračervené>", 2, "Konec", %e
      mCASC "Velikost", "1x", $2900+21, "2x", $0A00+22, "3x", $0B00+23
      mCARD "Možnosti", "Velikost>", -3, "Nastavení", %N
      mCASC "Téma", "Soubory", 10, "Tisk", 11, "Infračervené", 12, "Zobrazení", 13
      mCARD "Nápověda", "O programu", -%O, "Téma>", 4
      m%=MENU
      PRINT "Volba z menu byla "; m%; " (";CHR$(m%); ")"
      IF m%=%e : STOP : ENDIF
    ENDIF
  ENDWH
ENDP

Nesmíme zapomenout uvést u každé položky nabídky včetně položek kaskádových menu jinou klávesovou zkratku (nebo jinou číselnou hodnotu). Pokud tuto podmínku nedodržíme, nebude možné podle hodnoty vrácené příkazem MENU rozlišit, která položka byla stisknutá.


Nyní již umíme doplnit naše programy o důležité prvky uživatelského rozhraní. Zatím však neumí ukládat ani číst žádná data. V příštím dílu budeme psát o souborech, databázích, knihovnách OPX a obecně o všem, co souvisí se vstupem a výstupem dat.



Nejčtenější

Google posílá vzkaz Evropské komisi. Takhle se bude bránit

Protikartelová komisařka Margrethe Vestagerová.

Google se s obří pokutou od Evropské komise nehodlá smířit. Firma se proti ní odvolá a chce Komisi dokázat, že systém...

Rekordní pokuta pro Google, za dominanci Androidu zaplatí 112 miliard

Ilustrační snímek

Evropská komise uložila internetovému gigantu Google další pokutu. Firma by měla platit za to, že zneužívá dominantního...



Nový supersmartphone vysune kameru a nahrává uživatele bez jeho vědomí

Vivo NEX

V rámci právě skončeného mistrovství světa ve fotbalu byla hrací plocha obklopena panely s reklamami na nový čínský...

Španěl prodává sbírku nerozbalených iPhonů. Za cenu ojetého ferrari

Španěl prodává unikátní sbírku iPhonů za téměř 100 tisíc eur.

Aukční portál eBay je nepřebernou studnicí zajímavých, ale mnohdy i šokujících inzerátů. Nabídku prodejce ze španělské...

Jeden z nejočekávanějších mobilů roku. Nokia 8110 je chytrá jen trochu

Nokia 8110 4G

Retro model Nokia 8110 4G je možná jedním z nejočekávanějších mobilů letošního roku. V Česku se začal prodávat počátkem...

Další z rubriky

Na dovolené se můžete seznámit i nespálit

Ilustrační snímek

Na dovolenou si bereme kde co, ovšem počítač/notebook často zůstává doma. Ten je na jedné straně prostředkem k...

S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Ilustrační snímek

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha...

Na aplikace alternativních taxi útočí virus. Pase po údajích ke kartám

Virus pro Android

Uživatelé mobilních aplikací alternativních taxi včetně aplikace Uber by měli být obezřetní. Ohrožuje je totiž nový...

Facebook OSVĚDČENO: Výlety, které zabaví děti a neunaví rodiče
Facebook OSVĚDČENO: Výlety, které zabaví děti a neunaví rodiče

Zavřené školky a letní prázdniny si žádají jediné – vyrazit na nezapomenutelný rodinný výlet, zabavit děti a neunavit rodiče. Jaké jsou naše tipy na výlety po Čechách?

Najdete na iDNES.cz