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

aktualizováno 
V této 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.

Funkce posuvníku

Operační systém PalmOS nám poskytuje několik funkcí, jejichž prostřednictvím můžeme manipulovat s posuvníky. Základní funkcí pro ovládání posuvníku je funkce SclSetScrollBar(). Touto funkcí nastavíme pozici a délku vozíku posuvníku.

void SclSetScrollBar(ScrollBarPtr posuvník, Int16 hodnota, 
                   Int16 minimum, Int16 maximum, Int16 délkaStránky)

Nastaví pozici a délku vozíku posuvníku.
Od verze PalmOS 2.0

Vstupní parametry
  • posuvník - ukazatel na datovou strukturu, ve které jsou uložena data posuvníku
  • hodnota - pozice vozíku posuvníku
  • minimum - tato pozice vozíku posuvníku odpovídá jeho umístění až nahoře
  • maximum - tato pozice vozíku posuvníku bude odpovídat jeho umístění dole
  • délkaStránky - výška vozíku posuvníku

Funkci SclSetScrollBar() voláme, když je zapotřebí změnit zobrazení posuvníku. Jedná se o následující tři případy, při kterých je změna zobrazení vozíku zapotřebí:

  1. Operační systém zašle naší aplikaci zprávu fldChangedEvent jako upozornění na změnu výšky textu v políčku.
  2. Odstránkujeme pomocí kláves pro pohyb o stránku nahoru a dolů nebo jiným způsobem.
  3. Nastavíme nový text v políčku funkcemi FldSetText() nebo například FldSetTextHandle().

Pozice vozíku, která je předávána v parametru hodnota, označuje pozici horního okraje vozíku posuvníku. Parametr maximum, který funkci SclSetScrollBar() v takovém případě předáváme, musíme proto vypočítat podle následující rovnice:

celková výška textu - velikost stránky + přesah

Například je-li k zobrazení textu potřeba 100 řádků (to můžeme zjistit například voláním funkce FldGetScrollValues()) a je-li políčko vysoké 10 řádků (výška vozíku posuvníku odpovídá 10 řádkům), tak hodnota parametru maximum bude 90. Pokud si přejeme, aby se jednotlivé stránky překrývaly, zvětšíme parametr maximum o počet řádků, o které se mají stránky překrývat.

void SclGetScrollBar(ScrollBarPtr posuvník, Int16 *hodnota, 
               Int16 *minimum, Int16 *maximum, Int16 *výškaStránky)

Zjistí pozici a výšku vozíku posuvníku.
Od verze PalmOS 2.0

Vstupní parametry
  • posuvník - ukazatel na datovou strukturu, ve které jsou uložena data posuvníku
Výstupní parametry
  • hodnota - ukazatel na proměnnou, do které bude uložena pozice vozíku posuvníku
  • minimum - ukazatel na proměnnou, do které bude uložena pozice vozíku posuvníku odpovídající jeho umístění nahoře
  • maximum - ukazatel na proměnnou, do které bude uložena pozice vozíku posuvníku odpovídající jeho umístění dole
  • délkaStránky - ukazatel na proměnnou, do které bude uložena výška vozíku posuvníku

Provádíme-li komplikovanější nastavení posuvníku, můžeme před nastavením nových hodnot posuvníku volat funkci SclGetScrollBar(). Funkce SclGetScrollBar() uloží parametry posuvníku do proměnných, jejichž adresy jí předáme. Po změnách hodnot parametrů posuvníku je můžeme funkcí SclSetScrollBar() zpět využít ke změně zobrazení posuvníku na displeji.

4.19. Nastavení hodnot posuvníku podle políčka

Můžeme napsat obalující funkci pro jednoduchou rovnici pro výpočet parametrů posuvníku, kterou jsme si uvedli. Tato obalující funkce zjistí z políčka funkcí FldGetScrollValues() aktuální hodnoty výšky textu a výšky políčka. Tyto hodnoty pak přepočítá na parametry, které předá funkci SclSetScrollBar().

void UpravPosuvnikDlePolicka(ScrollBarPtr posuvník, FieldPtr políčko)
{
    UInt16 poziceVozíku, výškaTextu, výškaPolíčka;
    Int16 maximum;
	
    FldGetScrollValues(políčko, &poziceVozíku, &výškaTextu, &výškaPolíčka);

    if(výškaTextu > výškaPolíčka)
    {
       maximum = výškaTextu - výškaPolíčka;
    }
    else if(poziceVozíku)
    {
       maximum = poziceVozíku;
    }
    else
    {
       maximum = 0;
    }
	
    SclSetScrollBar(posuvník, poziceVozíku, 0, maximum, výškaPolíčka - 1);
}

Obalující funkci UpravPosuvnikDlePolicka() můžeme upravit i tak, aby vyžadovala jako parametry jednoznačný identifikátor prvku políčka a posuvníku. Prostřednictvím obalující funkce Objekt(), kterou jsme si popsali již dříve, převedeme jednoznačné identifikátory políčka a posuvníku na ukazatele na jejich datové struktury.


V příštím dílu si doplníme náš šifrovací program o obsluhu posuvníku, který je ve formuláři pro zobrazení výsledků.





Nejčtenější

iPhone X
iPhonů X bude zoufale málo. Vyprodáno může být za pár minut

Uvedení iPhonu X se blíží, předobjednávky Apple spustí za několik dnů a první kusy zamíří ke koncovým zákazníkům už 3. listopadu. Telefonů však bude ve...  celý článek

Asus Zenfone 4 Selfie Pro
U volební urny neroztahujte selfie tyčku. Fotit však zakázáno není

Mobily budou hrát u právě probíhajících parlamentních voleb specifickou roli - spousta lidí si jimi bude dokumentovat svoji aktivitu při volbách. Co je ve...  celý článek

Nové ovládací centrum umožňuje přidávat další funkce.
Nový systém od Applu už má 47,3 % přístrojů. Android Oreo jen 0,2 %

Díky tomu, že Apple si sám vyvíjí software i hardware, je aktualizace iPhonů a iPadů velmi snadná. Naopak Android má roztříštěnou základnu přístrojů od tisíců...  celý článek

iPhone X
Je to konec mýtické čtečky v displeji? Výrobci sázejí na obličej

Čtečka otisků integrovaná do displeje měla být jednou z hlavních letošních inovací na poli smartphonů. Technologie je ovšem natolik složitá, že výrobci od...  celý článek

Příchod sítí 5G je plánován na rok 2020
Nástup sítí 5G je zase o něco blíže. První vysílače jsou už postavené

Berlín Příchod sítí 5G je plánován až na rok 2020, ale k důležitým milníkům dochází už teď. Společnost Deutsche Telekom spustila první evropské vysílače umožňující...  celý článek

Další z rubriky

Škodlivý kód Cooligan napadá zařízení s Androidem 4 a 5
Aplikace ukazovala otravující čísla. Data kradl antivir přímo z mobilů

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

Záchranná služba představila ve středu oficiální mobilní aplikaci, pomůže...
Aplikaci české záchranky používá už 330 tisíc lidí, čekají ji vylepšení

Aplikaci Záchranka, která v naléhavých případech umožňuje přivolat si pomoc přes mobil, čekají v dubnu inovace. Spustí se zdokonalené funkce pro neslyšící a...  celý článek

Netradiční fotoaplikace Gudak vás donutí nad fotkami zase přemýšlet
Za 23 korun vám aplikace fotku z iPhonu ukáže až za tři dny

Vnímání fotografie se za posledních pár let výrazně změnilo. Díky záznamovým médiím již totiž nemusíme přemýšlet nad každým snímkem jako kdysi. Doby, kdy se...  celý článek

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.