Zadávání času
dTIME promenna&, vyzva$, vlastnosti%, min&, max&
Příkaz dTIME slouží k definování řádku, na kterém bude možné zadat časový údaj. Po 32bitové proměnné, ve které je údaj o čase uložen jako počet vteřin od půlnoci, následuje text výzvy, 16bitová proměnná udávající vlastnosti a na konci řádku opět minimální a maximální hodnota.
Chování příkazu dTIME je možné ovlivňovat konstantami KDTimeWithSeconds% (čas včetně vteřin), KDTimeDuration% (zadáváme délku v hodinách a minutách), KDTimeNoHours% (bez hodin) a KDTime24Hour% (24hodinový cyklus i u počítačů s jiným lokálním nastavením), které je možno kombinovat na místě proměnné pro uvedení vlastností. Podívejte se na následující příklad:
INCLUDE "Const.oph" PROC cas: LOCAL a&, b&, c&, d&, e&, f& dINIT "Čas..." dTIME a&, "Bez modifikátoru", 0, 0, 86399 dTIME b&, "Sekundy", KDTimeWithSeconds%, 0, 86399 dTIME c&, "Délka 1-8h", KDTimeDuration%, 1*3600, 8*3600-1 dTIME d&, "Bez hodin", KDTimeNoHours%, 0, 86399 dTIME e&, "24 hod.", KDTime24Hour%, 0, 86399 dTIME f&, "Délka bez hodin", KDTimeDuration%+KDTimeNoHours%, 0, 86399 DIALOG ENDP
Výběr možnosti ze seznamu
dCHOICE promenna%, vyzva$, moznosti$
Příkaz dCHOICE slouží k výběru jedné možnosti ze seznamu. Po 16bitové proměnné, která označuje řádek seznamu počínaje od jedné, následuje text výzvy. Třetím parametrem je text, ve kterém jsou čárkami odděleny jednotlivé možnosti. Počet možností ani jejich délka nejsou omezeny.
Možnosti jednoho příkazu dCHOICE je možné uvést i na více řádcích. V takovém případě ukončíme seznam znakem čárka, za kterým následují tři tečky a na dalším řádku uvedeme příkaz dCHOICE znovu se stejnou proměnnou, podobně jako v následujícím příkladu:
PROC vyber: LOCAL i% dINIT "Vyberte si" dCHOICE i%, "Možnost", "První,Druhá,Třetí,..." dCHOICE i%, "", "Čtvrtá,Pátá,Šestá,..." dCHOICE i%, "", "Sedmá,Osmá,Devátá" IF DIALOG : PRINT "i%="; i% : GET : ENDIF ENDP
Jméno souboru
dFILE jmeno$, vyzva$, vlastnosti%
K výběru jména souboru slouží příkaz dFILE. Za příkazem následuje řetězcová proměnná (délky KDFileNameLen%), která obsahuje počáteční jméno souboru nebo prázdný text a do které bude uloženo nové jméno souboru. Následuje text výzvy a proměnná upřesňující chování příkazu. V textu výzvy příkazu dFILE musíme čárkou oddělit texty pro řádek s výběrem souboru, adresáře a disku (nebo jen pro výběr adresáře a disku, použijeme-li na řádku konstantu KDFileFoldersOnly%). V souboru CONST.OPH jsou definovány konstanty, které je možné sčítat pro dosažení žádoucího chování příkazu dFILE.
KDFileEditBox% je nejdůležitější z těchto konstant ovlivňujících chování příkazu dFILE. Pokud ji neuvedeme, bude možné vybírat pouze existující soubory; použijeme-li ji, tak bude možné jméno souboru na řádku editovat.
Chceme-li mít možnost vybírat i adresáře, přičteme k proměnné s vlastnostmi konstantu KDFileAllowFolders% a pokud si přejeme jen adresáře, tak konstantu KDFileFoldersOnly%.
Přičtení konstanty KDFileEditorDisallowExisting% nedovolí zadat jméno existujícího souboru. Konstanta KDFileEditorQueryExisting% určí, že zadáme-li do políčka jméno existujícího souboru, zobrazí se dotaz, zda si jej přejeme přepsat. Obě tyto konstanty mají smysl pouze u editovatelného jména souboru.
Doplněním konstant KDFileAllowNullStrings% a KDFileAllowWildCards% umožňujeme uživateli zadat jako jméno souboru prázdný text nebo zástupné znaky jmen souborů.
Za normálních okolností není možné zadat jméno souboru, který je v adresáři \System nebo v paměti ROM. Toto chování změníme použitím konstant KDFileSelectorWithRom% a KDFileSelectorWithSystem%.
Pro výběr existujícího souboru ke čtení uvádíme na řádku většinou hodnotu 0. Pro volbu existujícího adresáře, do kterého bude tento soubor kopírován, zvolíme upřesňující proměnnou jako KDFileFoldersOnly%+KDFileAllowFolders% a v textu výzvy uvedeme jen text pro jméno adresáře a disk. Sečtením vhodných konstant můžeme chování příkazu dFILE v široké míře přizpůsobit svým potřebám. Prohlédněte si jednoduchý příklad programu, který umožní prohlédnout si soubory v paměti ROM (disk Z) a zkopírovat je na disk:
INCLUDE "Const.oph" PROC kopiezrom: LOCAL s$(KDFileNameLen%), cil$(KDFileNameLen%) s$="Z:\System\" : cil$="C:\Documents\" dINIT "Kopie souboru z ROM" dTEXT "Zdrojový soubor...", "" dFILE s$, "Soubor,Adresář,Disk", KDFileSelectorWithRom%+KDFileSelectorWithSystem% dTEXT "Kam...", "" dFILE cil$, "Adresář,Disk", KDFileFoldersOnly% IF DIALOG TRAP COPY s$, cil$ IF ERR=0 ALERT("Úspěch") ELSE ALERT("Chyba", ERR$(ERR)) ENDIF ENDIF ENDP
Mimo popsané parametry je příkaz dFILE možné doplnit i o možnost vybírat soubory pouze jednoho typu přidáním tří UID čísel jako parametrů. To však patří mezi pokročilá témata související s architekturou systému EPOC, kterými se tady zabývat nebudeme.