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

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

Blesková krádež. Zloději za 30 sekund vybílili obchod Applu

Blesková krádež v kalifornském Apple Storu

Skupina mužů za méně než minutu vykradla před očima zákazníků i personálu obchod Apple Store v kalifornském Fresnu....



Xiaomi pokračuje v dumpingových akcích. Redmi S2 bude za 300 korun

Nová prodejna mobilů v Olomouci přilákala stovky lidí

Agresivní marketing čínské značky v Česku pokračuje. Xiaomi otevírá třetí obchod a tradičně první den nabízí produkty s...

Novinka za 975 korun nahradí smartphone a nepotřebuje dotykový displej

JioPhone 2

Obyčejné mobily nejsou mrtvé. Právě naopak. Jestliže prodeje smartphonů stagnují, nebo na některých trzích dokonce...

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

Další z rubriky

Už přes ni vyhrožovali smrtí. Přesto je aplikace extrémně populární

Logo aplikace Sarahah

Vysoký nárůst popularity zaznamenala aplikace Sarahah, určená k posílání anonymních zpráv. Ačkoliv se v posledních...

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

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

Najdete na iDNES.cz