Premium

Získejte všechny články
jen za 89 Kč/měsíc

Úvod do jazyka OPL (10)

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

Spotem s Trojanem na horách operátor popudil Poláky. Nerozuměli nadsázce

21. dubna 2024  8:01

Po dvojici Vojtěch Kotek a Lukáš Pavlásek, k níž později přibyl Jakub Kohák, vsadil T-Mobile ve...

Je to už spíš foťák s mobilem a opravdu se povedl. Test Xiaomi 14 Ultra

21. dubna 2024

Prémiový smartphone Xiaomi 14 Ultra působí mezi současnou nabídkou mobilů jako unikát. Jaký jiný...

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

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Vodafone měl výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se nemohli...

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

Operátoři zahušťují pokrytí Česka signálem 5G. Máte ho doma? Podívejte se

20. dubna 2024

Premium V červenci to budou již čtyři roky, co byla v Česku spuštěna první komerční 5G síť. Zatímco v...

Xiaomi už se nebude držet zpátky. Pro řadu T chystá další prémiové funkce

26. dubna 2024

Smartphony řady T od Xiaomi mají vždy parádní výbavu, ale zároveň i pár kompromisů, aby trochu...

Vodafone měl výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se nemohli...

Toto mohl být nevídaný smartphone. Myšlenku však nakonec poslali k vodě

25. dubna 2024

S takovým smartphonem bychom už nikdy nemuseli řešit, že se zpomaluje, nemá dostatek paměti či je...

Samsung má povedenou stylovku. Zkusí to s ní na trhu, kde se mu nedaří

24. dubna 2024

Samsung po velmi dlouhé době oprášil modelovou řadu Galaxy C a představil stylový smartphone se...

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

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

Bývalý fitness trenér Kavalír zrušil asistovanou sebevraždu, manželka je těhotná

Bývalý fitness trenér Jan Kavalír (33) trpí osmým rokem amyotrofickou laterální sklerózou. 19. dubna tohoto roku měl ve...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Největší mýty o zubní hygieně, kvůli kterým si můžete zničit chrup

Možná si myslíte, že se v péči o zuby orientujete dost dobře, přesto v této oblasti stále ještě existuje spousta...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...

Za vytlačení z linky do Brna musí Student Agency zaplatit náhradu 21 milionů

Společnost Student Agency provozující autobusy a vlaky pod označením RegioJet musí zaplatit bývalému konkurentovi 21...