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

Úvod do jazyka OPL (10)

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

Tlačítka v dialogu

dBUTTONS text_1$, klavesa_1%, text_2$, klavesa_2%, ...

Mezi příkazy dINIT a DIALOG jsou postupně definovány jednotlivé řádky dialogu, tak jak na displeji následují pod sebou. Příkaz dBUTTONS definuje tlačítka, která jsou zobrazena pod dialogem nebo vpravo od něj. Může být uveden kdekoliv v definici dialogu. Za tímto příkazem následují vždy dvojice parametrů - první, textový určuje popisek tlačítka a druhý, číselný slouží k označení klávesové zkratky.

Klávesové zkratky příkazu dBUTTONS mohou být uvedeny přímo jako ASCII hodnota znaku uvozená znakem procento (výraz %A má hodnotu 65). Pak je možné tlačítko aktivovat klávesou Ctrl+A. Přičteme-li k ASCII hodnotě písmene konstantu KDButtonPlainKey%, tak bude tlačítko aktivováno přímo klávesou s písmenem A. Použijeme-li konstantu KDButtonNoLabel%, tak tlačítko nebude mít žádnou klávesovou zkratku a nebude možné jeho stisknutí simulovat pomocí klávesnice.

Pro ostatní tlačítka na klávesnici můžeme použít konstanty KDButtonDel%, KDButtonTab%, KDButtonEnter%, KDButtonEsc% a KDButtonSpace%.

V případě, kdy stiskneme Esc, vrací funkce DIALOG hodnotu 0. Pokud dialog ukončíme stiskem nějakého tlačítka, tak je vrácena hodnota odpovídající ASCII kódu klávesové zkratky asociované s tlačítkem (bez Ctrl). Příklad použití jednoduchého dialogu, který obsahuje jenom tlačítka:

INCLUDE "Const.oph"

PROC dialog:
  LOCAL d1%
  dINIT "Co má program dělat"
  dBUTTONS "Akci A", %A, "Věc V", %V+KDButtonPlainKey%, "Skončit", KDButtonDel%
  d1%=DIALOG
  IF d1%=%a OR d1%=%A
    PRINT "Akce A";
  ELSEIF d1%=%v OR d1%=%V
    PRINT "Věc V";
  ELSEIF d1%=KDButtonDel%
    PRINT "Stisknuto Del - konec";
  ELSE
    PRINT "Stisknuto Esc";
  ENDIF
  PRINT ", vrácená hodnota je ", d1%
  GET
ENDP

Statický text

dTEXT vlevo$, vpravo$
dTEXT vlevo$, vpravo$, atributy%

Na řádcích dialogu může být uveden text. K tomuto účelu slouží klíčové slovo dTEXT, za kterým následují dva řetězce: první bude zobrazen na řádku vlevo, zarovnán s ostatními popiskami řádků a druhý bude zarovnán vpravo s ostatními editovanými parametry. Je-li první z těchto řetězců prázdný, bude druhý z nich zobrazen přes celý řádek.

dTEXT může mít ještě třetí, numerický parametr upřesňující chování řádku s textem. Přidáme-li jako třetí parametr konstantu KDTextLineBelow%, tak bude řádek podtržen. Pokud je první parametr dTEXT prázdný řetězec, můžeme měnit zarovnání druhého parametru na řádku (můžeme použít konstanty ze souboru CONST.OPH KDTextLeft%, KDTextRight% a KDTextCentre%).

Pokud uvedeme jako první i druhý parametr dTEXT prázdný řetězec a třetím parametrem bude konstanta KDTextSeparator%, tak bude místo textu řádku nakreslena oddělující čára.

INCLUDE "Const.oph"

PROC dialog3:
  LOCAL a$(10), b : a$="text..." : b=10.256
  dINIT "Informace"
  dTEXT "Proměnná a$", a$
  dTEXT "Proměnná b", FIX$(b, 2, 10)
  dTEXT "","",KDTextSeparator%
  dTEXT "Dnešní datum", DATIM$
  dBUTTONS "Zpět", KDButtonEsc%
  DIALOG
ENDP

Poslední konstanta, kterou je možné v příkazu dTEXT použít, je KDTextAllowSelection%. Řádek, na kterém je tato definice uvedena, je možné zvýraznit; po stisknutí Enter vrátí příkaz DIALOG číslo právě zvýrazněného řádku. To umožňuje například napsat následující program pro výběr z nabídky:

INCLUDE "Const.oph"

PROC dialog4:
  LOCAL d%
  dINIT "Hlavní nabídka"
  dTEXT "Udělat A", "...první akce", KDTextAllowSelection%
  dTEXT "Dvě", "...druhá akce", KDTextAllowSelection%
  dTEXT "Konec", "...skončit", KDTextAllowSelection%
  d%=DIALOG
  PRINT "Výběr "; d% : GET
ENDP


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

Záchranku volejte přes aplikaci. Pomoc je rychlejší než při volání na 155

Simulovaná dopravní nehoda jako praktická ukázka fungování mobilní aplikace...

„Záchranná služba, tísňová linka, dobrý den,“ ohlašuje se operátorka volajícímu, který se stal svědkem dopravní nehody....

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

Aplikace ukazovala otravující čísla. Data kradl antivir přímo z mobilů

Škodlivý kód Cooligan napadá zařízení s Androidem 4 a 5

Zajímavý model vymyslelo studio DU. Jedna jejich android aplikace ukazovala, kdo volá, včetně obtěžujících čísel...

Najdete na iDNES.cz