Premium

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

Úvod do jazyka OPL (11)

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

Úvod do jazyka OPL 6/10


Editovatelné hodnoty

Další odstavce budou popisovat příkazy dialogu definující řádky, na kterých můžeme hodnoty měnit. Všechny tyto příkazy mají dva povinné parametry: prvním z nich je jméno proměnné, jejíž hodnota bude použita k inicializaci dialogu a do níž bude při úspěšném ukončení dialogu uložen výsledek. (Úspěšné ukončení dialogu je jakékoliv jiné než klávesou Esc.) Druhým parametrem je "výzva" - text zobrazený vlevo od měněné hodnoty.

Editace textu a hesla

dEDIT promenna$, vyzva$
dEDIT promenna$, vyzva$, delka%

Přejeme-li si mít možnost text na řádku měnit, použijeme příkaz dEDIT. Za tímto příkazem uvedeme jméno řetězcové proměnné, která bude obsahovat editovaný text. Dalším parametrem definujeme výzvu zobrazenou v levém sloupci vedle editovaného textu. Poslední - nepovinný - parametr slouží k nastavení šířky políčka, ve kterém bude text zapisován. (Šířka políčka se uvádí v počtu průměrně širokých znaků.) Srovnejte první a druhý dialog z následujícího příkladu:

INCLUDE "Const.oph"

PROC dialog5:
  LOCAL j$(20), p$(20)
  j$="žádné" : p$="nemá"
  dINIT "První"
  dEDIT j$, "Jméno"
  dEDIT p$, "Příjmení"
  IF DIALOG
    PRINT "Jméno = "; j$; " "; p$
  ENDIF
  REM --- druhý dialog ---
  dINIT "Druhý"
  dEDIT j$, "Jméno", 10
  dEDIT p$, "Příjmení", 10
  IF DIALOG
    PRINT "Jméno = "; j$; " "; p$
  ENDIF
GET
ENDP

Heslo

dXINPUT promenna$, vyzva$

Podobný příkazu dEDIT je i příkaz dXINPUT, který slouží ke vstupu hesla. Tento příkaz má pouze dva parametry - jméno proměnné a text, který bude zobrazen vlevo od ní. Počáteční hodnota proměnné, která následuje za dXINPUT, je ignorována a místo textu se na displeji z důvodu utajení zobrazují pouze hvězdičky. Políčko pro vstup textu má pevnou délku a maximální délka hesla, která může být zadána, je 16 znaků (v souboru CONST.OPH je uvedena konstanta KDXInputMaxLen%).

Políčko k zaškrtnutí

dXINPUT promenna%, vyzva$

Příkazem dCHECKBOX vložíte do dialogu políčko k zaškrtnutí. Za příkazem následuje jméno 16bitové celočíselné proměnné (a%). Při zobrazení dialogu bude políčko zaškrtnuto, pouze bude-li mít tato proměnná nenulovou hodnotu. Bude-li dialog ukončen jinak než klávesou Esc, tak bude do této proměnné uložena hodnota nula nebo jedna podle toho, zda bude čtvereček zaškrtnutý nebo ne.

Vstup čísla

dLONG promenna&, vyzva$, min&, max&
dFLOAT promenna, vyzva$, min, max

Příkazy dLONG a dFLOAT vložíte do dialogu řádek, na kterém můžete zadávat celé číslo nebo číslo s pohyblivou desetinnou čárkou. Za proměnnou, do které bude uložen výsledek (pro dLONG je 32bitová (a&) a pro dFLOAT reálná), a textem výzvy následuje u obou příkazů minimální a maximální povolená hodnota. Jsou-li povolené všechny hodnoty, je nutné použít konstanty KMinFloat, KMaxFloat nebo KMinLong&, KMaxLong& definované v souboru CONST.OPH.

Vstup data

dDATE promenna&, vyzva$, min&, max&

K zadávání data slouží v OPL příkaz dDATE. Datum je uloženo v 32bitové proměnné jako počet dnů od 1. ledna 1900 a parametry tohoto příkazu jsou stejné jako parametry příkazu dLONG, včetně maximální a minimální povolené hodnoty.

Pro převod data na požadované číslo slouží funkce pocet&=DAYS(den%, mesic%, rok%). Obrácený převod 32bitového čísla na datum je možný příkazem SECSTODATE.

PROC vypocet:
  LOCAL suma, od&, do&, ano%, pocet&
  suma=0.0 : ano%=1 : od&=DAYS(DAY, MONTH, YEAR) : do&=od&+28
smycka::
  dINIT "Rozložení na splátky"
  dFLOAT suma, "Celkem", 0.0, KMaxFloat
  dDATE od&, "Od", DAYS(1,1,1950), DAYS(31,12,2100)
  dDATE do&, "Do", DAYS(1,1,1950), DAYS(31,12,2100)
  IF DIALOG=0 : STOP : ENDIF 
  pocet&=(do&-od&)/7
  dINIT "Výsledek"
  dTEXT "Suma", FIX$(suma, 2, 20)
  dTEXT "Počet týdnů", NUM$(pocet&, 20)
  dTEXT "Týdenní splátka", FIX$(suma/pocet&, 2, 20)
  dCHECKBOX ano%, "Další výpočet"
  IF DIALOG=0 : STOP : ENDIF
  IF ano% : GOTO smycka : ENDIF
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...

Doma si natáhnete neviditelné kabely k internetu. Huawei ukázal inovace

17. dubna 2024

Huawei na každoroční roadshow ukázal v Praze své inovace pro letošní rok. Vedle průmyslových...

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

K mobilu teď dostanete televizi zdarma a levnější jsou také iPhony

16. dubna 2024,  aktualizováno  10:12

Výrobci mobilních telefonů se už zase začínají předhánět ve výhodných nabídkách. Přímé slevy jsou...

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

Možná s nenápadnou výbavou, ale je to poctivě postavená stylovka

22. dubna 2024

Oppo se v kontextu dalších čínských výrobců prezentuje jako prémiová značka. Rozhodně se nesnaží o...

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

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

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

Manželé Babišovi se rozcházejí, přejí si zachovat rodinnou harmonii

Podnikatel, předseda ANO a bývalý premiér Andrej Babiš (69) s manželkou Monikou (49) v pátek oznámili, že se...

Sexy Sandra Nováková pózovala pro Playboy. Focení schválil manžel

Herečka Sandra Nováková už několikrát při natáčení dokázala, že s odhalováním nemá problém. V minulosti přitom tvrdila,...

Charlotte spí na Hlaváku mezi feťáky, dluží spoustě lidí, říká matka Štikové

Charlotte Štiková (27) před rokem oznámila, že zhubla šedesát kilo. Na aktuálních fotkách, které sdílela na Instagramu...

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