17.6. ezUI

17.6.1. string2anyfield

$Header: /home/radek/cvs/forth-book/db-qf-moduly/ezUI,v 1.5 2003/12/28 18:21:57 radek Exp $

ezUI je modul a nástroje pro tvorbu grafického rozhraní aplikace na PalmOS.

Tabulka 17.6. Seznam souborů modulu ezUI [1:3]

souborobsah
ezUIbasedefunuje slova a hodnoty společné pro ostatní soubory modulu
ezUIhlavni soubor, jádro modulu ezUI, definuje slova pro pole a ovládací prvky
ezDatedefinuje slova pro výběr datumu
ezTimedefinuje slova pro výběr času
arraymovedefinuje slova pro posouvání bloku buňek ze zásobníku do paměti a zpět
wrapnumfunkce pro „wrapping“ čísla v specifikovaném páru limit.
string2anyfielddovoluje přesouvání řetězců do polí jenž nejsou editovatelná
pushbuttonsdefinuje slova pro nastavování a získávání stavu tlačítek v množině tlačítek

Tabulka 17.7. Slova v modulu ezUI [1:3:6]

slovozásobníkpopis
stringfield( GET → str u ) ( str u SET → ) 
intfield( GET → n ) ( n SET → ) 
dblfield( GET → n. ) ( n. SET → ) 
listfield( GET → n ) ( n SET → ) 
checkbox( GET → n ) ( n SET → ) 
button( ) 

Modul definuje nekolik typů prvků rozhraní. Všechny se definují podle voru

číslo jméno_typu jméno

tedy například řádek

1001 stringfield ClientName

definuje prvek s identifikačním číslem 1010 jako textové pole pojmenovane ClientName Definovane prvky jsou objekty kterým je možno zasílat metody. Všem ovládacím prvkm je možno zaslat metody

hide

schová, zneviditelní, ovládací prvek

show

opět zviditelní, ovládací prvek

getid

vrátí identifikační číslo id ovládacího prveku

Varování

Volání metody ovládacího prvku který není na aktuálním formuláři způsobí chybu PalmOS

Tip

Metodu getid můžeme použít v době běhu ... . Například zjištění zda-li číslo v TOS je shodné s id ovládacího prvku „mycontrol“ můžeme udělat takto:

[ getid mycontrol ] = if

slova v hranatých závorkách jsou vykonána v době kompilace a hodnota takto zjištěná je uložena do programu. Tedy je-li id „mycontrol“ 1020, uvedený příklad se zkompiluje stejně jako kód

1020 = if

Pro všechny typy polí mohou být použity metody:

get

vrátí hodnotu v poli

set

nastavi hodnotu v poli

dirty?

vrátí 1 je-li pole dirty, jinak vrátí 0

dirty

nastaví status dirty na danou hodnotu

Příklad 17.6. Modul Šablona

...