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ší

Berte, dokud je. Mobil pro fajnšmekry po neúspěchu drasticky zlevnil

Essential PH-1

Keramické tělo, jeden z nejmodernějších procesorů, 128 GB vnitřní paměti a velký displej s tenkými rámečky a...

Konkurenci poprvé ukazuje záda, Huawei P20 Pro je nejlepší smartphone

Huawei P20 Pro

Čínský Huawei si dal letos na nových modelech řady P20 opravdu záležet. Model P20 Pro chce být tím nejlepším...



Američtí teenageři se mohou z iPhonů zbláznit. A zájem roste

iPhone 8 Plus v Drážďanech

Ve Spojených státech je mezi mladými uživateli smartphonů enormní zájem o iPhony - v současnosti je vlastní 82 procent...

Revoluce v mobilním focení? Umí nasadit profi objektiv na smartphony

S adaptérem můžete na mobil nasadit i profesionální objektivy

Na výstavě americké Národní asociace provozovatelů vysílání v Las Vegas byl ukázán zajímavý doplněk k mobilům pro...

ZTE má našlápnuto předehnat Apple s „ledovým“ smartphonem

ZTE Iceberg

ZTE chystá zajímavý smartphone, který zaujme dvakrát vykrojeným displejem. Přístroj má vypadat, jako by byl vytesaný z...

Další z rubriky

S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Ilustrační snímek

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha...

Bez reklamy ani ránu. Bude už i na Facebook Messengeru v mobilu

Mobilní Messenger projde změnou, k nelibosti uživatelů v něm budou cílené...

Oblíbený mobilní kecálek se brzy promění. Facebook totiž do Messengeru po úspěšném testování implementuje cílené...

Sem chodí smartphony umřít. Aplikaci lze použít jen s vybitou baterií

Die With Me

Aplikace s názvem Umři se mnou má velmi neobvyklé omezení. Nemůžete ji zapnout, pokud máte telefon nabitý víc než na...



Najdete na iDNES.cz