2.22. Políčko pro editaci textu
Jeden z nejdůležitějších prvků formuláře - slouží k editování textu - má mnoho různých vlastností, které je možno nastavit a jejichž přehled je uveden v tabulce. Z hlediska počtu nastavitelných vlastností se jedná určitě o prvek nejsložitější.
FIELD ID <číslo_prostředku> AT ( <vlevo> <nahoře> <šířka> <výška> ) vlastnosti
Z vlastností uvedených v jednom řádku tabulky můžeme vždy vybrat jen jednu. Tučným písmem jsou ty vlastnosti, které jsou přednastavené a nemusíte je uvádět.
Vlastnost | Popis |
---|---|
USABLE NONUSABLE | Použitelnost políčka
|
FONT <číslo_písma> | Písmo
Číslo písma musí označovat jedno ze standardních písem PalmOS, kterým bude text v políčku zobrazen (viz oddíl pojednávající o definici písem). Pokud neuvedeme, je použito standardní písmo (číslo 0). |
SINGLELINE MULTIPLELINES | Jeden nebo více řádků textu
|
LEFTALIGN RIGHTALIGN | Zarovnání textu
|
EDITABLE NONEDITABLE | Umožnit uživateli změnu textu
|
UNDERLINED | Podtržení
Pokud tuto vlastnost uvedeme, bude text v políčku podtržen šedou (tečkovanou) linkou. Tento parametr je vhodný zejména pro editovatelná políčka. |
DYNAMICSIZE | Proměnná velikost
Pokud uvedeme tuto vlastnost, bude se políčko moci při psaní textu zvětšovat (směrem dolů) a při mazání textu se bude políčko zmenšovat. |
MAXCHARS <počet_znaků> | Nejvyšší počet znaků
Za touto vlastností je nutné uvést, kolik nejvýše znaků může uživatel do políčka napsat. Platné hodnoty jsou 0 - 32767. Tuto vlastnost je povinné uvádět. |
AUTOSHIFT | Velké počáteční písmeno
Pokud uvedeme u políčka tuto vlastnost a aplikace poběží na počítači s verzí operačního systému větší než 2.0, tak bude první znak vepsaný do políčka automaticky převeden na velké písmeno. |
NUMERIC | Číselné políčko
Do políčka definovaného s touto vlastností bude možno zadávat jen číslice 0 až 9. |
HASSCROLLBAR | Posuvník
Tato vlastnost informuje operační systém PalmOS o tom, že u víceřádkového políčka pro editaci textu je použit posuvník. Ošetření spolupráce posuvníku a textového políčka je pak třeba udělat ve zdrojovém textu aplikace. |
Tyto vlastnosti políček je dobré si prostudovat: jejich vzájemným kombinováním můžeme docílit mnoha efektů pro zápis a zobrazení textu. Ve třetí a v páté kapitole se budeme políčkům pro zápis textu věnovat.
2.23 Příklady definic jednoduchých formulářů
Teď už jsme si popsali všechny prvky formulářů, které můžete ve své aplikaci používat. Na závěr popisu formulářů uvedu dva příklady definice formulářů. Pro ilustraci bude u každého příkladu i obrázek displeje, na kterém bude tento formulář zobrazen.
POZOR: v definici prvků formuláře (mezi úvodním BEGIN a závěrečným END) nesmí být uváděny komentáře.
Obyčejný formulář s víceřádkovým políčkem
První příklad obsahuje formulář přes celou obrazovku. Formulář obsahuje titulek, víceřádkové políčko pro editaci textu (s posuvníkem umístěným po straně), políčko k zaškrtnutí a dvě tlačítka. Konstanty označující čísla prostředků jsou definovány v hlavičkovém souboru takto:
// toto je soubor pokus1.h #define FormularPrvni 1000 #define TlacitkoOK 1001 #define TlacitkoZrus 1002 #define PoleText 1003 #define PosuvText 1004 #define ZaskrtniSoukrome 1005 |
V souboru prostředků aplikace je na začátku vložen hlavičkový soubor obsahující tyto konstanty (příkazem #include) a poté je definován formulář:
#include "pokus1.h" FORM ID FormularPrvni AT (0 0 160 160) NOFRAME NOSAVEBEHIND BEGIN TITLE "Zadejte text" FIELD ID PoleText AT (3 20 150 90) UNDERLINED MULTIPLELINES MAXCHARS 500 HASSCROLLBAR SCROLLBAR ID PosuvText AT (153 PREVTOP 7 PREVHEIGHT) VALUE 10 MIN 0 MAX 100 PAGESIZE 10 CHECKBOX "Soukromy" ID CheckBox1009 AT (3 120 AUTO AUTO) BUTTON "OK" ID TlacitkoOK AT (3 140 40 AUTO) BUTTON "Zrusit" ID TlacitkoZrus AT (60 PREVTOP PREVWIDTH AUTO) END |
Pro ty z vás, kteří jsou zvědaví, jak tento formulář vypadá, uvádím jeho obrázek:
Výhradní formulář
Formuláře ale nemusí být jen přes celou obrazovku. Druhý formulář je definován jako výhradní - nezabírá plochu celého displeje a uživatel od něj očekává, že se objeví nad jiným formulářem.
V tomto formuláři je skupina přepínačů, ze které může být vždy vybrán jen jeden, políčko pro editaci textu, tlačítko pro výběr textu a tlačítko volby ze seznamu. Dva symboly vpravo od skupiny přepínačů fungují také jako tlačítka - jsou však definovány bez rámečku. Opět uvedeme nejprve hlavičkový soubor, ve kterém jsou definovány konstanty pro čísla prostředků:
// toto je soubor pokus2.h #define FormularDruhy 2000 #define TlacitkoUloz 2001 #define TlacitkoZrus 2002 #define Prepni1 2003 #define Prepni2 2004 #define PrepniVice 2005 #define PoleJmeno 2006 #define VyberDatum 2007 #define VyberPohlavi 2008 #define SeznamPohlavi 2009 #define TlacitkoBudik 2010 #define TlacitkoStranka 2011 |
Podobně jako v předchozím příkladu i soubor prostředků aplikace začíná vložením souboru s definicemi konstant a pokračuje definicí formuláře.
FORM ID FormularDruhy AT (10 50 140 100) NOFRAME MODAL SAVEBEHIND BEGIN TITLE "Pokus" PUSHBUTTON "1" ID Prepni1 AT (10 22 20 AUTO) GROUP 1 PUSHBUTTON "2" ID Push1014 AT (PREVRIGHT+1 PREVTOP 20 PREVHEIGHT) GROUP 1 PUSHBUTTON "vice" ID Push1015 AT (PREVRIGHT+1 PREVTOP 37 PREVHEIGHT) GROUP 1 BUTTON "\024" ID TlacitkoBudik AT (100 PREVTOP 13 13) NOFRAME FONT 3 BUTTON "\025" ID TlacitkoStranka AT (120 PREVTOP 13 13) NOFRAME FONT 3 LABEL "Jmeno:" AUTOID AT (10 44) FONT 1 FIELD ID PoleJmeno AT (PREVRIGHT+2 PREVTOP 80 AUTO) UNDERLINED MAXCHARS 40 AUTOSHIFT SELECTORTRIGGER "Vyber datum" ID VyberDatum AT (10 60 60 AUTO) LEFTANCHOR POPUPTRIGGER "Pohlavi" ID VyberPohlavi AT (78 PREVTOP AUTO AUTO) RIGHTANCHOR LIST "Muz "Zena" ID SeznamPohlavi AT (PREVLEFT PREVTOP PREVWIDTH 22) NONUSABLE VISIBLEITEMS 2 POPUPLIST ID VyberPohlavi SeznamPohlavi BUTTON "Uloz" ID TlacitkoUloz AT (10 82 37 AUTO) BUTTON "Zrus" ID TlacitkoZrus AT (54 PREVTOP 37 AUTO) GRAFFITISTATEINDICATOR AT (128 84) END |
I tento formulář si můžete po přečtení definice v souboru prostředků aplikace prohlédnout:
Teď, když jsme probrali formuláře, budeme pokračovat v popisu souboru prostředků aplikace - probereme textové konstanty a jejich použití pro nápovědu a obrázky. Povíme si o dalším prvku uživatelského rozhraní: o výzvách (alerts) a naučíme se jej definovat.