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

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

4.20 Použití posuvníku v naší aplikaci

Nyní zcela opustíme historickou techniku stránkování pomocí opakovacích tlačítek a použijeme posuvník ve vstupním i výstupním formuláři. Začneme drobnou změnou souboru prostředků aplikace. Změna se bude týkat vstupního formuláře, ve kterém vynecháme opakovací tlačítka a vedle textu zobrazíme posuvník.

FORM ID FormularVstupni AT (0 0 160 160)
BEGIN
    ...
    FIELD ID PoleTextVstupni AT (5 30 145 88) HASSCROLLBAR ... 
    SCROLLBAR ID PosuvnikTextVstupni AT (RIGHT@159 PREVTOP 7 PREVHEIGHT) ... 
    ...
END

Změní se výška políčka a vedle políčka bude zobrazen posuvník. Všimněte si, že definice posuvníku kopíruje výšku políčka a jeho pravý okraj je zarovnán s pravým okrajem formuláře. Tato definice kopíruje definici políčka a posuvníku, kterou jsme uváděli ve výstupním formuláři. Upravený vstupní formulář bude na displeji vypadat takto:

Z původního zdrojového textu použijeme funkci PosunTextOStranku(). Tuto funkci budeme používat při stránkování pomocí hardwarových kláves.

Pro pohyb pomocí posuvníku budeme potřebovat doplnit ještě jednu funkci. Bude jí funkce PosunTextORozdil(). Nově definovaná funkce bude jako parametr vyžadovat počet řádků, o které budeme text v políčku posouvat. Bude-li počet řádků kladný, posouváme text směrem dolů; pro záporný počet řádků budeme text posouvat nahoru.

void PosunTextORozdil(UInt16 polickoID, Int16 rozdil)
{
    WinDirectionType smer = winDown;
    FieldPtr policko = (FieldPtr)Objekt(polickoID);

    if(rozdil < 0)
    {
        smer = winUp;
        rozdil = -rozdil;
    }

	// Pokud bude možné text posunout, posuneme jej
	
    if(FldScrollable(policko, smer))
    {
        FldScrollField(policko, rozdil, smer);
    }
}

Pro úpravu pozice vozíku posuvníku použijeme funkci UpravPosuvnikDlePolicka(), kterou jsme si uvedli výše. Ve funkci provedeme pouze jednoduchou úpravu tak, aby jako parametry požadovala konstanty pro jednoznačnou identifikaci políčka a posuvníku.

Uvedené tři funkce (PosunTextORozdil(), PosunTextOStranku() a UpravPosuvnikDlePolicka()) použijeme ve funkci formuláře. V následující tabulce uvedeme události, které budeme zpracovávat, a reakce na ně.

Zpráva Chování programu
frmOpenEvent Po nastavení textu políčka upravíme zobrazení posuvníku voláním funkce UpravPosuvnikDlePolicka().
sclRepeatEvent Spočteme z dat předaných ve zprávě počet řádků, o které budeme políčko posouvat, a zavoláme funkci PosunPolickoORozdil().
keyDownEvent Podle stisknuté klávesy zavoláme funkci PosunPolickoOStranku() pro odstránkování políčka. Poté upravíme zobrazení posuvníku funkcí UpravPosuvnikDlePolicka().
fldChangedEvent Upravíme zobrazení posuvníku voláním funkce UpravPosuvnikDlePolicka().

Pokud bychom při definici políčka zapomněli na vlastnost HASSCROLLBAR, nebude posuvník pracovat správně. Zapíšeme-li na konec políčka znak, kterým text políčka posuneme, nebude naší aplikaci zaslána zpráva fldChangedEvent a zobrazení posuvníku nebude upraveno.

V následujícím rámečku si uvedeme příklad funkce vstupního formuláře.

Zdrojový text aplikace si můžete stáhnout zde.


V příštím dílu si povíme o uživatelské nabídce (menu) a připomeneme si její definici v souboru prostředků aplikace.



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

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

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

Záchranku volejte přes aplikaci. Pomoc je rychlejší než při volání na 155

Simulovaná dopravní nehoda jako praktická ukázka fungování mobilní aplikace...

„Záchranná služba, tísňová linka, dobrý den,“ ohlašuje se operátorka volajícímu, který se stal svědkem dopravní nehody....

Mýty a fakta o nočním pomočování dětí
Mýty a fakta o nočním pomočování dětí

Podle odhadů trpí nočním pomočováním neboli enurézou asi pětina dětí ve věku 5 let, obtíže se však nevyhýbají ani starším jedincům. Rodiče často spoléhají na to, že „z toho dítě vyroste“, v horším případě děti trestají. Noční pomočování přitom může velmi negativně ovlivnit sebeúctu a duševní pohodu dítěte.

Najdete na iDNES.cz