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

Neomezená data dává O2 ještě levněji než dříve. S odměnou jsou za hubičku

15. dubna 2024  7:02

Základní datově neomezený tarif za cenu nižší, než standardně stojí tarif s 12 GB dat? U O2 na...

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

Čínský smartphonový standard dorazil do Česka. Není co vytknout, ani cenu

17. dubna 2024  7:02

Motorola představila hned tři modely z top řady Edge. První se začne prodávat model Edge 50 Pro,...

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

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Mobily začínají vadit. Obec u Paříže je zakázala, v Nizozemsku nesmějí do škol

19. dubna 2024

Premium Ačkoliv žijeme v době, kdy mnoho lidí téměř nedá mobil z ruky, někde už úřadům a dalším institucím...

I velké značky mají laciné smartphony. Ale počítejte s kompromisy

19. dubna 2024

Výrobci telefonů mají zpravidla řešení i pro ty zákazníky, kteří potřebují co možná nejlevnější...

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Tento podnik budou milovníci vína zbožňovat. Musí se ovšem vzdát mobilu

18. dubna 2024  12:33

Se zajímavým způsobem, jak strávníky přimět ke vzájemné komunikaci, přišel majitel restaurace v...

Náhle zemřel zpěvák Maxim Turbulenc Daniel Vali, bylo mu 53 let

Ve věku 53 let zemřel zpěvák skupiny Maxim Turbulenc Daniel Vali. Letos by se svou kapelou oslavil 30 let na scéně....

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

Vykrojené trikoty budí emoce. Olympijská kolekce Nike je prý sexistická

Velkou kritiku vyvolala kolekce, kterou pro olympijský tým amerických atletek navrhla značka Nike. Pozornost vzbudily...

Rohlík pro dítě, nákup do kočárku. Co v obchodě projde a kdy už hrozí právník?

V obchodech platí pravidla, která občas zákazník nedodržuje. Někdy se navoní parfémem, aniž by použil tester, nebo...