Úvod do jazyka OPL (9)

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

V květnu se zřejmě vrátí ikonická Nokia 3210, kdysi to byl přelomový model

24. března 2024  8:01

Současný vlastník značky Nokia na poli mobilních telefonů, firma HMD (Human Mobile Devices –...

Banka spustila mobilní datové balíčky. Funguje to i zákazníkům z Česka

26. března 2024  12:06

Virtuální banka Revolut spouští virtuálního celosvětového operátora. Zákazníci si mohou kupovat...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Z bídného začátku roku se radují. Vypadá to na velký návrat

21. března 2024  7:02

Zřejmě to vypadá na velký návrat. Huawei začíná drtit své domácí konkurenty, přitom jeho produkty...

Trvalo to. Nový nejlepší fotomobil světa konečně koupíte i v Česku

26. března 2024  7:02

Konečně nastává situace, že nejlepší fotomobil v žebříčku DxO Mark je dostupný i na našem trhu....

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pochlubili se, že se pochlubí. Značky ze sebe dělají slibotechny

25. března 2024  7:02

Jedním z trochu nečekaných trendů veletrhu MWC v Barceloně se stala oznámení o tom, že firmy nějaké...

Nová cenově dostupná stylovka vás může dostat na fotbalové Euro

29. března 2024

Vivo má nový smartphone střední třídy, který má velké ambice. Za rozumnou cenu nabídne nejen dobrou...

Toho telefonu je pouze pro Čínu škoda. Udělal by parádu i u nás

28. března 2024  12:06

Xiaomi má nový trhák. Model Civi 4 Pro trhá předprodejní rekordy, ale jen na domácím čínském trhu....

U foťáků se blýská na lepší časy, naznačuje výsledek testu nového xiaomi

28. března 2024  7:02

Čínská značka Xiaomi trochu na poli fotomobilů v uplynulých letech tápala. Ukazuje to mimo jiné...

Kartónek Steva Jobse se vydražil za neuvěřitelnou sumu

28. března 2024

Vizitku slavného ředitele společnosti Apple si někdo pořídil za pořádný balík peněz. Přidanou...

Smoljak nechtěl Sobotu v Jáchymovi. Zničil jsi nám film, řekl mu

Příběh naivního vesnického mladíka Františka, který získá v Praze díky kondiciogramu nejen pracovní místo, ale i...

Rejžo, jdu do naha! Balzerová vzpomínala na nahou scénu v Zlatých úhořích

Eliška Balzerová (74) v 7 pádech Honzy Dědka přiznala, že dodnes neví, ve který den se narodila. Kromě toho, že...

Pliveme vám do piva. Centrum Málagy zaplavily nenávistné vzkazy turistům

Mezi turisticky oblíbené destinace se dlouhá léta řadí i španělská Málaga. Přístavní město na jihu země láká na...

Kam pro filmy bez Ulož.to? Přinášíme další várku streamovacích služeb do TV

S vhodnou aplikací na vás mohou v televizoru na stisk tlačítka čekat tisíce filmů, seriálů nebo divadelních...

Stále víc hráčů dobrovolně opouští Survivor. Je znamením doby zhýčkanost?

Letošní ročník reality show Survivor je zatím nejkritizovanějším v celé historii soutěže. Může za to fakt, že už...