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

Stáhli si nahrávač hovorů, teď jim útočníci mohou vysát bankovní účty

Ilustrační snímek

Aplikace pro nahrávání hovorů QRecorder může být po aktualizaci zavirovaná. Útočník se tak může dostat k bankovním...

Takto vypadá boj o zákazníky: pětkrát více dat a úhrada smluvní pokuty

Slovenský operátor O2 navýšil základní data u vybraných tarifů

Od revoluce v roce 2013 zažívá český mobilní trh spíše menší otřesy, zákazníci operátorů toužící po neomezeném tarifu s...



Huawei se směje Applu. Lidem ve frontě na iPhony rozdával občerstvení

Huawei rozdával čekajícím ve frontě na nové iPhony džus a nabíjel jejich...

Minulý pátek se zájemci o nové iPhony tradičně postavili do front, aby mohli mít nový smartphone mezi prvními. Toho...

Za hodně peněz hodně muziky. Recenze vrcholného iPhonu XS Max

iPhone XS Max

Apple slavil v loňském roce výročí deseti let od uvedení svého prvního smartphonu. Proto připravil zcela nový přístroj,...

Konkurence se trefuje do „předražených“ nových iPhonů

Všechny tyto produkty Xiaomi stojí stejně, jako nový model iPhone XR

Na vysoké ceny novinek od Applu reagovali konkurenti poněkud posměšnými nabídkami. Ukazují v nich, co všechno z jejich...

Další z rubriky

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

Online randění pozastaveno. Facebook nechtěně odstřihl uživatele od Tinderu

Aplikace Tinder

Změna bezpečnostních nastavení Facebooku v reakci na nedávné skandály s úniky dat má celkem závažný důsledek pro ty,...

Už přes ni vyhrožovali smrtí. Přesto je aplikace extrémně populární

Logo aplikace Sarahah

Vysoký nárůst popularity zaznamenala aplikace Sarahah, určená k posílání anonymních zpráv. Ačkoliv se v posledních...

Najdete na iDNES.cz