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


Úvod do jazyka OPL (9)

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

Interakce s uživatelem

Dosud jsme v našich programech používali pro komunikaci s uživatelem jen velmi jednoduché uživatelské rozhraní - vstup z klávesnice a výstup na semigrafický textový displej. Není však těžké obohatit naše programy i o standardní prvky uživatelského rozhraní Psionů.

Programy v OPL umožňují jednoduše využívat standardní prostředky uživatelského rozhraní počítačů Psion - výzvy, dialogy a menu. Obohacením naší aplikace o komunikaci s uživatelem prostřednictvím standardních dialogů nebo menu významně zjednodušíme ovládání našich programů.

Výzvy

i%=ALERT(radek1$)
i%=ALERT(radek1$, radek2$)
i%=ALERT(radek1$, radek2$, tlacitkoEsc$)
i%=ALERT(radek1$, radek2$, tlacitkoEsc$, tlacitkoEnter$)
i%=ALERT(radek1$, radek2$, tlacitkoEsc$, tlacitkoEnter$, tlacitkoMezera$)

Výzva (alert) slouží obyčejně k upozornění uživatele na nějakou činnost, kterou se chystá program vykonávat, nebo na chybu programu. Pod výzvou mohou být zobrazena 1-3 tlačítka, která může uživatel použít k zvolení další činnosti programu. Výzvu zobrazíme na displeji funkcí ALERT, které předáme jako parametry jeden až pět textových řetězců.

Předáme-li funkci ALERT jeden nebo dva textové řetězce jako v následujícím příkladu, bude zobrazeno jedno- nebo dvouřádkové upozornění uživatele, pod kterým bude jediné tlačítko. Toto upozornění zmizí z displeje poté, co uživatel stiskne klávesu Esc. Pokud předáme textové řetězce tři, bude třetí z těchto řetězců uveden jako text v tlačítku.

PROC vyzva:
  ALERT("Začátek programu")
  ALERT("Toto je", "program")
  ALERT("Konec", "programu", "Konec")
ENDP

Předáme-li funkci ALERT čtyři textové parametry, budou pod informačními řádky zobrazena tlačítka dvě. První z nich bude označeno textem třetího parametru a bude reagovat na klávesu Esc; ve druhém z nich bude text čtvrtého parametru a bude reagovat na klávesu Enter. Funkce ALERT vrátí pořadové číslo tlačítka (v souboru CONST.OPH jsou návratové hodnoty definovány jako KAlertEsc% a KAlertEnter%).

INCLUDE "Const.oph"

PROC vyzvasparametrem:
  LOCAL r%
  DO
    r%=ALERT("Vyber si", "", "Konec", "Znova")
  UNTIL r%=KAlertEsc%
ENDP

Přidáme-li parametr pátý, objeví se nám mezi prvním a druhým tlačítkem ještě tlačítko třetí, reagující na mezerník. Příslušná konstanta, kterou funkce ALERT po jeho stisknutí vrátí, je KAlertSpace%.

Dialogy

V jazyce OPL můžeme velmi snadno používat jednoduché dialogy. Dialog je okno na obrazovce, které je členěné po řádcích. Na každém řádku může být zobrazen text nebo okénko pro editaci textu, čísla, data, času, jména souboru atd. Na spodním řádku nebo po straně mohou být tlačítka, jejichž stisknutím dialog ukončíme. Nejsou-li v dialogu tlačítka zobrazena, lze jej ukončit stiskem klávesy Enter.

Ošetření dialogu je zcela v rukou operačního systému EPOC. V programu OPL pouze definujeme, co bude na kterém řádku dialogu, a vydáme příkaz pro zobrazení dialogu na displeji. Operační systém se pak postará o správné chování dialogu, ovládací prvky na jednotlivých řádcích a kontrolu zadávaných údajů. Poté, co uživatel stiskne tlačítko Enter, Esc nebo jedno z tlačítek pro ukončení dialogu, operační systém vrátí kontrolu zpět programu OPL a předá mu změněné hodnoty.

dINIT text$
dINIT text$, atributy%

Při každém použití musíme dialog definovat znova - definice nemohou být nikde uloženy. Definice jednotlivých řádků dialogu začíná příkazem dINIT. Za příkazem dINIT může následovat titulek dialogu (zobrazen úplně nahoře) a atributy popisující celkové chování dialogu. Definice končí příkazem DIALOG, který zobrazí dialog na displeji a vrátí hodnotu informující náš program o tom, jak byl dialog ukončen.

Důležité atributy, které mohou být uvedeny za dINIT, jsou: KDlgButRight% pro umístění tlačítek vpravo vedle dialogu, KDlgNoTitle% pro vynechání řádku s titulkem, KDlgFillScreen% (roztáhne dialog na celý displej) a KDlgDensePack%. Poslední z uvedených atributů způsobí, že mezi řádky dialogu budou menší mezery a na obrazovku se tak vejde více informací.

Autor:



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



Vodafone extrémně vylepšuje rodinné tarify. Zadarmo přidává 8 GB a VDSL

Vodafone (ilustrační fotografie)

Není obvyklé, aby operátor výrazně vylepšil tarif a nesáhl na cenu. V případě inovovaných rodinných tarifů Red+ tomu...

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

Další z rubriky

Za 23 korun vám aplikace fotku z iPhonu ukáže až za tři dny

Netradiční fotoaplikace Gudak vás donutí nad fotkami zase přemýšlet

Vnímání fotografie se za posledních pár let výrazně změnilo. Díky záznamovým médiím již totiž nemusíme přemýšlet nad...

Google loni zlikvidoval 700 tisíc aplikací

Mobilní aplikace

Z aplikačního obchodu Google Play bylo loni odstraněno 700 tisíc aplikací, většina zmizela prakticky ihned po umístění...

Bez reklamy ani ránu. Bude už i na Facebook Messengeru v mobilu

Mobilní Messenger projde změnou, k nelibosti uživatelů v něm budou cílené...

Oblíbený mobilní kecálek se brzy promění. Facebook totiž do Messengeru po úspěšném testování implementuje cílené...

Najdete na iDNES.cz