V minulom dieli sme si predstavili dva jednoduché textové vstupy, ktoré sme rozdelili na neformátované a formátované. Podobná situácia je aj v oblasti číselných vstupov, kde máme tak isto dve základné možnosti – obyčajný číselný vstup a číselný vstup pre zadanie korunovej (menovej) hodnoty.
Neformátovaný číselný vstup je určený na interaktívne zadanie ľubovoľného čísla. Podobne, ako pri ostatných vstupoch, aj tu môžeme preddefinovať jeho hodnotu. Špecialitou číselných vstupov je možnosť definovania minimálnej a maximálnej hodnoty spolu s počtom desatinných miest (t.j. desatinnou presnosťou). Pri vlastnom vstupe síce môžeme zadať aj viac desatinných miest, číslo však bude automaticky zaokrúhlené.
Ak budeme predpokladať, že máme definovaný dialóg „dlg“, do ktorého vložíme číselný vstup „Ciselny_vstup“, vlastnú hodnotu potom nájdeme v premennej:
dlg.model.Ciselny_vstup.value
a inicializáciu prevedieme napríklad takto (pozor, desatinné miesta sa oddeľujú bodkou – tu neplatia gramatické, ale programovacie pravidlá):
dlg.model.Ciselny_vstup.value=123.57
Číselný vstup pre zadanie meny je určený na interaktívne zadanie čísla s tým, že vo vstupnom okienku sa automaticky vypíše aj názov menovej jednotky (Sk a pod.). Tento názov môžeme ľubovoľne meniť a podobne, ako pri neformátovanom číselnom vstupe môžeme zadať počet desatinných miest, čím si môžeme vytvoriť napr. kurzový lístok aj s prípadným prepočtom.
Ak budeme predpokladať, že máme definovaný dialóg „dlg“, do ktorého vložíme číselný menový vstup „Menovy_vstup“, vlastnú hodnotu potom nájdeme v premennej:
dlg.model.Menovy_vstup.value
A aby sme nezostali iba v teoretickej rovine, urobme si jednoduchý príklad na práve spomínanú možnosť kurzového lístka spojeného aj s prepočtom nákupu alebo predaja povedzme medzi českou a slovenskou korunou.
Navrhovaný dialóg môže mať jednoduchý tvar – dve obyčajné okienka pre zadanie kurzov (nákup a predaj) a tri menové okienka – v prvom zadáme, koľko českých korún chceme nakúpiť alebo predať a vo zvyšných dvoch sa nám zobrazia príslušné údaje v slovenských korunách. Okrem toho nám do dialógu stačí pridať tlačidlo „OK“ pre jeho ukončenie a niekoľko popisných textov, aby sme sa v ňom jednoducho dokázali orientovať.
Okrem toho musíme k vstupnému menovému políčku priradiť funkciu, pomocou ktorej budeme pri zadávaní čísla prepočítavať príslušné výstupné hodnoty. Toto dosiahneme tým, že v časti „Udalosti“ priradíme príslušné makro (nazvime si ho „Prepocet_meny“) k udalosti „Zmenený text“. O priraďovaní funkcií k jednotlivým udalostiam sme sa už venovali v časti o viacokienkových dialógoch a preto to teraz spomíname už iba okrajovo.
Vlastné makrá môžu potom vyzerať nasledovne:
sub Prepocet_meny
dlg.model.Menove_pole1v.value=dlg.model.Ciselne_pole1.value*dlg.model.Menove_pole1.value
dlg.model.Menove_pole2v.value=dlg.model.Ciselne_pole2.value*dlg.model.Menove_pole1.value
end sub
sub Dialog_kurzovy_listok
DialogLibraries.LoadLibrary("Standard")
dlg=CreateUnoDialog(DialogLibraries.Standard.Dialog2)
REM Kurzy sa dajú zmeniť priamo aj v dialógu
dlg.model.Ciselne_pole1.value=1.323
dlg.model.Ciselne_pole2.value=1.299
dlg.model.Menove_pole1.value=0
dlg.model.Menove_pole1v.value=0
dlg.model.Menove_pole2v.value=0
dlg.Execute()
dlg.dispose()
end sub
Na budúce: Vstupné polia, alebo ako vyberať viac možností z nejakého zoznamu.