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

(Ilustrační snímek)
Apple odmítá odblokovat funkci iPhonu, která může zachránit životy

Ve výbavě smartphonů od Applu chybí speciální funkce, která dokáže s vysokou přesností určit místo, odkud člověk volá na pohotovostní linku. Upozornila na to...  celý článek

Samsung Galaxy Note 8
Samsung vyvíjí snímač otisků integrovaný v displeji. Bude pětkrát dražší

Smartphone Galaxy Note 8 ještě ani nevyšel a analytik Ming-Chi Kuo už ve svých předpovědích mluví o jeho nástupci. Právě u Notu 9 by měl debutovat v displeji...  celý článek

Podvodná nabídka ročního pronájmu top smartphonů a další špičkové elektroniky
Lákají na neuvěřitelně levné top smartphony, ale je to podvod

iPhone nejvyšší specifikace za pouhou tisícikorunu či například top model Samsungu jen za něco málo přes 900 korun ročně. Na první pohled je to velmi lákavá...  celý článek

Ilustrační snímek
ČTÚ smetl ze stolu žádosti virtuálů. Roaming je pro ně noční můrou

Již v průběhu května obdržel Český telekomunikační úřad od tří virtuálních operátorů žádosti o povolení účtovat příplatek k roamingu. Virtuálové bez vlastní...  celý článek

Nokia vyhrála patentovou válku s Applem
Záhada drahých tarifů. Plnou cenu platí jen někdo

Je to paradox, T-Mobile dlouhodobě získává za zákazníka s tarifem v průměru jen 350 korun měsíčně, navíc suma trvale mírně klesá. Jenže přesně tolik stojí jeho...  celý článek

Další z rubriky

Aplikace Facebook Messenger Lite je dostupná i v Česku
Šetří místo i data. Dietní Messenger od Facebooku je i v Česku

Facebook Messenger je jedním z nejpoužívanějších kecálků, ale ne všechny telefony si s ním poradí. Loni se tak zrodila myšlenka na odlehčenou verzi určenou pro...  celý článek

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

Nové parkovací automaty v Praze
Jak zaplatit za nové parkovací zóny v Praze? Mobil je téměř nutností

Nové zóny placeného stání startují dnes v pátém a šestém pražském obvodu. Zóny jsou rozděleny na tři typy a novinkou je placení za parkování mobilem. Aplikace...  celý článek

Jsem těhotná a partner mi zahnul. Přesto zůstávám
Jsem těhotná a partner mi zahnul. Přesto zůstávám

Jak se jiné ženy postavily k nevěře a co jim pomohlo.

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.