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 (50)

aktualizováno 
Dnes si po krátkém úvodu povíme o funkcích, jejichž prostřednictvím manipulujeme s posuvníkem.

Chování posuvníku

Z hlediska uživatele se může posuvník chovat dvěma různými způsoby. Při prvním z nich sleduje text v políčku každou změnu pozice posuvníku. Pokud perem táhneme vozík posuvníku, text plynule roluje nahoru nebo dolů. Toto chování zajišťujeme zpracováním události sclRepeatEvent.

Při druhém způsobu je pozice textu v políčku aktualizována až na konci pohybu posuvníku. Dokud posouváme perem vozík posuvníku, text se v políčku nepohybuje. Pozice textu v políčku se změní až po zvednutí pera z displeje - při zpracování události sclExitEvent.

V naší aplikaci můžeme použít kterýkoliv z těchto dvou způsobů. První z nich (plynulé posouvání) je uživatelsky přívětivější, ale pomalejší. Druhý způsob je rychlejší a hodí se pro políčka obsahující dlouhý text.

4.18. Funkce pro ovládání posuvníku

Při používání posuvníku budeme používat několik dalších funkcí operačního systému PalmOS. Už jsme poznali funkci FldScrollField(), která posouvá text v políčku o stanovený počet řádků nahoru nebo dolů.

Funkce FldGetScrollPosition() slouží k zjištění pozice textu v políčku. Funkce vrací pozici prvního znaku na prvním řádku v políčku. Vrácenou hodnotu můžeme použít k nastavování pozice posuvníku.

UInt16 FldGetScrollPosition(const FieldType* políčko)

Zjistí pozici posouvaného textu v políčku.

Vstupní parametry
  • políčko - ukazatel na datovou strukturu, ve které jsou uložena data políčka
Vrácená hodnota
  • pozice prvního znaku na prvním viditelném řádku políčka

Funkci FldGetScrollPosition() vhodně doplňuje funkce FldSetScrollPosition(). Pomocí funkce FldSetScrollPosition() můžeme upravit pozici textu v políčku. Funkci předáváme jako parametr pozici znaku od počátku textu v políčku. Po zavolání funkce bude nastaven znak na této pozici na začátek prvního řádku políčka. Pokud bude potřeba políčko překreslit, funkce políčko na displeji upraví.

void FldSetScrollPosition(FieldType* políčko, UInt16 pozice)

Nastaví pozici posouvaného textu v políčku.

Vstupní parametry
  • políčko - ukazatel na datovou strukturu, ve které jsou uložena data políčka
  • pozice - znak na této pozici bude zobrazen na začátku prvního řádku políčka

Funkce FldSetScrollPosition() a FldGetScrollPosition() budeme později používat například k zapamatování pozice textu v políčku při opakovaném volání programu. Pokud naše aplikace obsahuje formulář s víceřádkovým políčkem pro editaci textu, tak uživatel očekává, že při návratu do programu zůstane zachován obsah políčka, aby mohl pokračovat v rozdělané práci. Chceme-li uživateli poskytnout lepší iluzi multitaskingu, zapamatujeme si nejen obsah políčka, ale i pozici textu v políčku.

Posuvník je součástí operačního systému PalmOS až od verze 2.0. Programy, které používají následující funkce, nebudou na Palm Pilotech 1000 a 5000 (dva nejstarší modely) pracovat a mohou způsobit havárii systému a ztrátu dat.

Funkce FldGetScrollValues() přečte z datové struktury políčka hodnoty, které slouží k nastavení pozice posuvníku. Známe-li celkovou výšku textu v řádcích a počet řádek, které jsou zobrazeny na displeji, můžeme vypočítat výšku vozíku. Pozici vozíku můžeme spočíst z celkového počtu řádků, který text zabírá, a z prvního zobrazeného řádku.

void FldGetScrollValues(const FieldType* políčko, 
                        UInt16* prvni, UInt16* celkem, UInt16* vyska)

Zjistí o políčku informace, které později použijeme k nastavení posuvníku.
Od verze PalmOS 2.0

Vstupní parametry
  • políčko - ukazatel na datovou strukturu, ve které jsou uložena data políčka
Výstupní parametry
  • prvni - číslo řádku textu, který je v políčku zobrazen jako první
  • celkem - celkový počet řádků, které zabírá text políčka
  • vyska - výška políčka v řádcích

Hodnoty, které vrací funkce FldGetScrollValues(), budeme po malé úpravě předávat funkci SclSetScrollBar(). Funkce SclSetScrollBar() aktualizuje velikost a pozici vozíku posuvníku.


V příští kapitole si povíme o funkcích pro ovládání posuvníku a uvedeme si část zdrojového textu, který předává data mezi políčkem a posuvníkem.




Nejčtenější

iPhone SE 2 má být už v květnu. Takto by měl vypadat

Údajný iPhone SE 2.

iPhone SE byl představen před dvěma roky, jeho design je pak vyloženě zastaralý. Vychází z šest let starého modelu....

V sobotu koupíte smartphony Xiaomi za 399 Kč a sluchátka za korunu

Sleva

Čínské Xiaomi od loňska oficiálně působí v Česku a po několika stáncích otvírá i plnohodnotný obchod. První zákazníci...



Obchod pětiletky finišuje. Spojení Vodafonu a UPC ovlivní i trh v Česku

Vodafone jedná o převzetí operátora UPC

Vodafone by měl v nejbližší době koupit některé evropské pobočky Liberty Global. Obchod se týká i Česka, znamenalo by...

Drsná metoda autoškoly, žáci museli položit své mobily na silnici

Neobvyklý způsob učení parkování v čínské autoškole

V čínské autoškole vymysleli originální způsob, jak naučit studenty velmi opatrně zaparkovat. Na čáry vyhrazené pro...

Nejnovější smartphone od Samsungu se nedokáže připojit k internetu

Samsung Galaxy J2 Pro ve verzi bez internetu

Samsung připravil smartphone, který by u nás ocenili možná jen senioři. Případně ti, kteří se obávají možného zneužití...

Další z rubriky

Google loni zlikvidoval 700 tisíc aplikací

Mobilní aplikace

Z aplikačního obchodu Google Play bylo loni odstraněno 700 tisíc aplikací, většina zmizela prakticky ihned po umístění...

Aplikace ukazovala otravující čísla. Data kradl antivir přímo z mobilů

Škodlivý kód Cooligan napadá zařízení s Androidem 4 a 5

Zajímavý model vymyslelo studio DU. Jedna jejich android aplikace ukazovala, kdo volá, včetně obtěžujících čísel...

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...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!



Najdete na iDNES.cz