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ší

Nový „levný“ iPhone má být hit. Prodat se ho má 100 milionů

Trojice iPhonů pro rok 2018

Apple chystá na letošní rok tři nové iPhony. Jedním z nich má být levnější model, který nebude mít OLED displej. A...

Nepoužívejte smartphony Huawei a ZTE, varují Američany FBI, CIA i NSA

Huawei Mate 10 Pro bude v USA k dostání u BestBuy

Huawei chtěl letos vzít útokem Spojené státy, a to s pomocí tamních klíčových operátorů. Z možné dohody však nakonec...



Teď přijde řada na naše peníze. V Číně totiž končí zlaté časy

Xiaomi Mi 6

Čínský trh s chytrými telefony je největší na světě, ale loni se podle všeho dostal do potíží. Po letech růstu přišel...

Lidé si stěžovali na špatný signál. Rušil ho těžař bitcoinů

(Ilustrační snímek)

Newyorští zákazníci amerického operátora T-Mobile si stěžovali na znatelný šum během telefonních hovorů. Ukázalo se, že...

Vše, co od smartphonu očekáváte, jen za 6 000. Test Honor 9 Lite

Honor 9 Lite

Honor 9 Lite je žhavou novinkou na českém trhu a také je potenciálním prodejním hitem. Smartphone s moderními funkcemi...

Další z rubriky

Ušetříte za mobilní data. Facebook vám ukáže bezplatnou wi-fi

Find Wifi funkce na Facebooku

V aplikaci sociální sítě Facebook se objevila nová užitečná funkce - dovede vás nasměrovat k nejbližší veřejné wi-fi...

Šetří místo i data. Dietní Messenger od Facebooku je i v Česku

Aplikace Facebook Messenger Lite je dostupná i v Česku

Facebook Messenger je jedním z nejpoužívanějších kecálků, ale ne všechny telefony si s ním poradí. Loni se tak zrodila...

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...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!



Najdete na iDNES.cz