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

příslušenství k Samsungu Galaxy S8+
Natáhněte si na špičkový Samsung třeba mechanickou klávesnici

Vlastníci Samsungu Galaxy S8/S8+ mají spoustu možností, jakými doplňky si vylepšit svůj smartphone. Na výběr jsou různé kryty, pouzdra, sluchátka plus...  celý článek

Samsung Galaxy S8
Prodeje Galaxy S8 nemusí být růžové, pomoci by mohl Note 8

Samsung při zmínce o prodejích svého nového top modelu pouze sdělil, že se prodává nejlépe v historii, ale žádná čísla neuvedl. Nyní to vypadá, že prodeje...  celý článek

Ilustrační snímek
Chtěl se vyfotit na záchodě. Omylem vystřelil a dostal šest let

Striptýzové kluby slibují nevšední zážitky, střelba mezi ně ovšem nepatří. O takový netradiční zážitek se loni 17. prosince návštěvníkům klubu Lust ve...  celý článek

Samsung Galaxy S8
Samsung S8+ v prodeji i ve verzi pro dvě SIM. Jeden slot je kombinovaný

Samsung začal na českém trhu oficiálně prodávat dvousimkovou verzi svého top modelu Galaxy S8+. Ovšem řešení neumožní používat dvě SIM a paměťovou kartu...  celý článek

Samsung Galaxy Note 8
Toto je nejlepší smartphone od Samsungu. Poprvé má duální foťák

Zapomeňte na nepovedený Note 7, Samsung totiž představil jeho nástupce, který je králem mobilů současnosti. Note 8 má tu nejlepší možnou výbavu, velký displej...  celý článek

Další z rubriky

Aplikace Donald Draw: Executive Doodle umožní vytvořit (nejen) vlastní...
Vžijte se do kůže Donalda Trumpa. Vytvořte vlastní exekutivní příkaz

V aplikačních obchodech lze vybírat z nepřeberného množství mobilních aplikací, od užitečných až po zábavné. Do druhé kategorie spadají vesměs i aplikace,...  celý článek

Ilustrační snímek
Nikam nevolali, přesto mají platit tisíce. Oškubala je „astro aplikace“

Tváří se jako rozšíření oblíbené mobilní hry, ve skutečnosti však ukrývá škodlivý kód. Ten bez vědomí uživatele uskutečňuje hovory na audiotexové linky, které...  celý článek

Ilustrační snímek
S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

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 situacích je totiž neocenitelným pomocníkem....  celý článek

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

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.