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

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

V květnu se zřejmě vrátí ikonická Nokia 3210, kdysi to byl přelomový model

24. března 2024  8:01

Současný vlastník značky Nokia na poli mobilních telefonů, firma HMD (Human Mobile Devices –...

Banka spustila mobilní datové balíčky. Funguje to i zákazníkům z Česka

26. března 2024  12:06

Virtuální banka Revolut spouští virtuálního celosvětového operátora. Zákazníci si mohou kupovat...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Trvalo to. Nový nejlepší fotomobil světa konečně koupíte i v Česku

26. března 2024  7:02

Konečně nastává situace, že nejlepší fotomobil v žebříčku DxO Mark je dostupný i na našem trhu....

Smartphonům od Googlu raketově rostou prodeje tam, kde kraluje Apple

27. března 2024  7:02

Prodeje smartphonů Pixel od Googlu se mohou pochlubit neskutečným nárůstem prodejů. Tedy prozatím...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pochlubili se, že se pochlubí. Značky ze sebe dělají slibotechny

25. března 2024  7:02

Jedním z trochu nečekaných trendů veletrhu MWC v Barceloně se stala oznámení o tom, že firmy nějaké...

Nová cenově dostupná stylovka vás může dostat na fotbalové Euro

29. března 2024

Vivo má nový smartphone střední třídy, který má velké ambice. Za rozumnou cenu nabídne nejen dobrou...

Toho telefonu je pouze pro Čínu škoda. Udělal by parádu i u nás

28. března 2024  12:06

Xiaomi má nový trhák. Model Civi 4 Pro trhá předprodejní rekordy, ale jen na domácím čínském trhu....

U foťáků se blýská na lepší časy, naznačuje výsledek testu nového xiaomi

28. března 2024  7:02

Čínská značka Xiaomi trochu na poli fotomobilů v uplynulých letech tápala. Ukazuje to mimo jiné...

Kartónek Steva Jobse se vydražil za neuvěřitelnou sumu

28. března 2024

Vizitku slavného ředitele společnosti Apple si někdo pořídil za pořádný balík peněz. Přidanou...

Smoljak nechtěl Sobotu v Jáchymovi. Zničil jsi nám film, řekl mu

Příběh naivního vesnického mladíka Františka, který získá v Praze díky kondiciogramu nejen pracovní místo, ale i...

Rejžo, jdu do naha! Balzerová vzpomínala na nahou scénu v Zlatých úhořích

Eliška Balzerová (74) v 7 pádech Honzy Dědka přiznala, že dodnes neví, ve který den se narodila. Kromě toho, že...

Pliveme vám do piva. Centrum Málagy zaplavily nenávistné vzkazy turistům

Mezi turisticky oblíbené destinace se dlouhá léta řadí i španělská Málaga. Přístavní město na jihu země láká na...

Velikonoce 2024: Na Velký pátek bude otevřeno, v pondělí obchody zavřou

Otevírací doba v obchodech se řídí zákonem, který nařizuje, že obchody s plochou nad 200 čtverečních metrů musí mít...

Kam pro filmy bez Ulož.to? Přinášíme další várku streamovacích služeb do TV

S vhodnou aplikací na vás mohou v televizoru na stisk tlačítka čekat tisíce filmů, seriálů nebo divadelních...