Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Programování pro PalmOS počítače krok za krokem (49)

aktualizováno 
Dnes přikročíme k popisu posouvání textu v políčku pomocí posuvníku.

4.17. Posuvník

Druhý, a mnohem elegantnější způsob posouvání textu v políčku je spojen s použitím posuvníku. Posuvník se objevuje až ve verzi PalmOS 2.0. Bývá obvykle umístěn podél pravé strany políčka a většinou je i stejně vysoký jako políčko, ke kterému patří. Šířka posuvníku musí být 7 obrazových bodů.

V souboru prostředků aplikace definujeme posuvník pomocí klíčového slova SCROLLBAR. Při umisťování posuvníku do formuláře můžeme výhodně použít konstanty PREVRIGHT, PREVTOP a PREVHEIGHT. S jejich pomocí můžeme umístit posuvník vedle příslušného políčka.

FORM ID FormularVystupni AT (0 0 160 160)
BEGIN
...
    FIELD ID ... AT (5 18 145 121) HASSCROLLBAR ...
    SCROLLBAR ID ... AT (PREVRIGHT PREVTOP 7 PREVHEIGHT) VALUE 10 MIN 0 MAX 100 PAGESIZE 10
...
END

Jako šířku posuvníku můžeme zadat hodnotu AUTO, která by měla znamenat, že posuvník bude široký 7 bodů. Drobná chyba v překladači souboru prostředků aplikace pilrc však způsobuje, že zadáme-li jako šířku posuvníku hodnotu AUTO, tak program pilrc vypíše varování o špatné šířce posuvníku. Proto bychom měli zadávat šířku posuvníku vždy číslem.

Počátečním nastavením vlastností MIN, MAX, VALUE a PAGESIZE se nemusíme příliš zabývat. Tyto vlastnosti slouží pouze k prvnímu zobrazení posuvníku na dipleji a budeme je v naší aplikaci programově měnit.

Políčka, která si přejeme posouvat pomocí posuvníku, bychom měli důsledně definovat s atributem HASSCROLLBAR. Tento atribut říká operačnímu systému, aby zaslal naší aplikaci zprávu fldChangedEvent, kdykoliv dojde ke změně celkové výšky nebo pozice textu v políčku. Naše aplikace pak má možnost při zpracování zprávy fldChangedEvent aktualizovat zobrazení posuvníku na displeji.

Na rozdíl od posouvání textu po stránkách pomocí opakovacích tlačítek nám použití posuvníku nabízí mnoho výhod. Text můžeme posouvat více způsoby. Dotekem pera na šipce nahoru nebo dolů můžeme posunout text o řádek nahoru nebo dolů. Dotekem pera na šedě vybarvenou plochu posuvníku posuneme text o stránku. Konečně tažením vozíku můžeme posouvat text plynule.

Při pohledu na posuvník také uživatel okamžitě vidí, jaká relativní část textu je zobrazená na displeji.

Události posunutí posuvníku

Když se uživatel dotkne perem displeje kdekoliv na posuvníku, operační systém uloží do fronty zpráv zprávu sclEnterEvent. Tuto zprávu většinou naše aplikace nepotřebuje zpracovávat.

Dokud uživatel posuvníkem pohybuje, tak operační systém zasílá naší aplikaci v pravidelných intervalech zprávu sclRepeatEvent. V datové struktuře, která popisuje událost, je uložena jednoznačná identifikace posuvníku. Dále je v ní uložena i pozice vozíku na začátku pohybu a na konci pohybu v tomto kroku.

Z rozdílu těchto dvou hodnot můžeme spočíst počet řádků, o které políčko musíme v tomto kroku posunout, abychom udrželi krok s posuvníkem. Směr posunutí, který předáváme jako druhý parametr funkci FldScrollField(), zjistíme snadno ze znaménka rozdílu. Dokud uživatel pohybuje posuvníkem - ať už tažením vozíku nebo šipkami - je zpráva sclRepeatEvent zasílána opakovaně.

sclRepeatEvent
EventType* event;
UInt16 event->data.sclRepeat.scrollBarID
Jednoznačná identifikace posuvníku, kterým uživatel pohybuje
Int16 event->data.sclRepeat.value
Pozice posuvníku na počátku pohybu
Int16 event->data.sclRepeat.newValue
Pozice posuvníku na konci pohybu

Na konci pohybu, tedy když uživatel zvedne pero z displeje, zašle operační systém PalmOS naší aplikaci zprávu sclExitEvent. Tato zpráva obsahuje informaci o pozici vozíku na začátku pohybu posuvníku (v okamžiku zaslání zprávy sclEnterEvent) a při skončení pohybu (při zvednutí pera z displeje).

sclExitEvent
EventType* event;
UInt16 event->data.sclExit.scrollBarID
Jednoznačná identifikace posuvníku, kterým uživatel pohybuje
Int16 event->data.sclExit.value
Pozice posuvníku na počátku pohybu
Int16 event->data.sclExit.newValue
Pozice posuvníku na konci pohybu

Hodnoty pozice vozíku na počátku a konci pohybu u zprávy sclExitEvent se týkají celého posunu vozíku od začátku pohybu až do konce. Oproti tomu hodnoty zasílané každou zprávou sclRepeatEvent se týkají jen jedné části pohybu posuvníku. V naší aplikaci můžeme zpracovávat buď jednu, nebo druhou zprávu - hodnoty, které vrací, nemůžeme míchat.


Příště si po krátkém úvodu povíme o funkcích, jejichž prostřednictvím manipulujeme s posuvníkem.

Autor:


Nejčtenější

Takto vypadá boj o zákazníky: pětkrát více dat a úhrada smluvní pokuty

Slovenský operátor O2 navýšil základní data u vybraných tarifů

Od revoluce v roce 2013 zažívá český mobilní trh spíše menší otřesy, zákazníci operátorů toužící po neomezeném tarifu s...

Konkurence se trefuje do „předražených“ nových iPhonů

Všechny tyto produkty Xiaomi stojí stejně, jako nový model iPhone XR

Na vysoké ceny novinek od Applu reagovali konkurenti poněkud posměšnými nabídkami. Ukazují v nich, co všechno z jejich...



Feministky kritizují nové iPhony. Jsou moc velké na ženskou ruku

iPhone XS/XS Max

Od doby, kdy Apple upustil od malých smartphonů, úhlopříčka nových modelů prudce narůstá. Nejnovější model ve verzi Max...

Prohlédněte si nejlepší a nejdražší iPhone. Máme ho jako první

iPhone XS Max

Stejně jako v předchozích letech jsme se i letos vypravili do Německa, abychom mohli vyzkoušet nejnovější smartphone od...

Operátor chtěl 37 tisíc, jenže smlouva byla uzavřena na ukradený průkaz

Ilustrační snímek

Operátoři by podle Českého telekomunikačního úřadu měli kontrolovat databázi neplatných dokladů. Informuje o tom v...

Další z rubriky

Záchranku volejte přes aplikaci. Pomoc je rychlejší než při volání na 155

Simulovaná dopravní nehoda jako praktická ukázka fungování mobilní aplikace...

„Záchranná služba, tísňová linka, dobrý den,“ ohlašuje se operátorka volajícímu, který se stal svědkem dopravní nehody....

K používání aplikace WhatsApp vám nově musí být minimálně 16 let

Whatsapp bude umět zpětně vymazat odeslané zprávy

Chatovací služba WhatsApp mění podmínky používání v Evropské unii. Nově začíná platit, že pro používání služby vám musí...

Na dovolené se můžete seznámit i nespálit

Ilustrační snímek

Na dovolenou si bereme kde co, ovšem počítač/notebook často zůstává doma. Ten je na jedné straně prostředkem k...

Najdete na iDNES.cz