7. Menük, párbeszédablakok
Menük létrehozása
Három lépésben történik
- Az mINIT parancs létrehoz egy új menüt. Paramétere nincs.
- Az mCARD utasítással adhatjuk meg a menüpontokat
- és a MENU függvénnyel jeleníthetjük meg a menüt.
Az mCARD első paramétere a menü neve, a következő paraméterpárokban
adhatjuk meg az alá tartozó almenüpontokat. Ezen menüpárok első eleme
a menüpont neve, második pedig egy karakter (pl. %m), amit ha Ctrl-lel
együtt megnyomunk, akkor kiválasztja a menüpontot. Itt különbséget tesz
kis- és nagybetű között, tehát %m és %M különböző. A MENU függvény
visszaadott értéke a gyosbillentyű karakter, vagy pedig 0, ha a menüből
kiléptünk.
Egy példa:
k%=GET
IF k% = $122 REM ez
a menü billentyű (a PSION gépeken van külön ilyen gomb) kódja
mINIT
mCARD "File", "Új", %n,
"Megnyitás", %o, "Mentés", %s
k% = MENU
IF k% = %n
:
ENDIF
:
ENDIF
Dialógusok kezelése
Dialógusokat hasonló módon lehet létrehozni. a dINIT paranccsal
inicializáljuk a dialógust, ennek egyetlen paramétere a dialógusablak
címe. Utána definiáljuk a bekérendő információkat. És végül a DIALOG
függvénnyel megjelenítjük a párbeszédablakot.
Az egyes bekérendő adatok típusáta következő lehetőségek közül választhatjuk:
- dEDIT var str$, prompt$, len%
paraméterei sorrendben egy változó, amibe a beírt értéket teszi, a
megjelenítendő szöveg, és opcionálisan megadhatjuk a maximális hosszt
is.
- dXINPUT var str$, prompt$
hasonló az előzőhöz, csak rejtett szövegbekérést tesz lehetővé (pl.
jelszavak).
- dFILE var str$, prompt$
filenév bekérését teszi lehetővé, könyvtár és lemez választási lehetőséggel.
- dCHOICE var choice%, prompt$, list$
listából való választás, a list$ vesszővel elválasztva tartalmazza
a listaelemeket.
- dCHECKBOX chk%, prompt$
checkboxot jelenít meg, a visszaadott érték 0, ha nincs beikszelve.
- dLONG var long&, prompt$, min&, max&
dFLOAT var ft, prompt$, min&, max&
dDATE var long&, prompt$, min&, max&
a megadott típusú változó bevitelét teszi lehetővé.
Egy példa:
dINIT "Egy komplex dialógus"
dEDIT n$, "Név:", 15
dXINPUT pw$, "Jelszó:"
dFILE f$, "Napló file:"
dCHOICE s$, "Neme:", "Férfi, Nő"
dCHECKBOX h$, "Kér hírlevelet?"
dDATE sz&, "Születési dátum:", DAYS(1,1,1900), DAYS(DAY,MONTH,YEAR)
IF DIALOG
...
ENDIF