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

aktualizováno 
Dnes si do naší aplikace zařadíme kompletní obsluhu menu a drobným domácím úkolem ukončíme čtvrtou kapitolu.

4.30 Obsluha menu v naší aplikaci

V minulém dílu jsme si napsali funkci, která ošetřila položky menu na kartě Editace. Zbývá jen začlenit ji do aplikace. V každé funkci formuláře musíme zpracovat všechny příkazy uživatelské nabídky, která je s formulářem spojena. Navrhovaný způsob samozřejmě není jediný možný, ale pro uživatele je nejpřehlednější. Příklad zapojení funkce FunkceMenuKartyEditace() do jedné funkce formuláře je v tabulce:

static Boolean UdalostVystupnihoFormulare(EventPtr udalost)
{
    Boolean zpracovano = false;
    Int16 rozdil;

    switch(udalost->eType)
    {

    ...

        case menuEvent:

            zpracovano = FunkceMenuKartyEditace(udalost->data.menu.itemID);

            if(!zpracovano)
            {
                    // Byla zvolena polozka menu, ale neslo 
                    // o polozku na karte "Editace"

                switch(udalost->data.menu.itemID)
                {
                    case PolozkaMenuOProgramu:

                            // Po zvoleni prislusne polozky menu zavolame
                            // funkci napovedy

                        FrmHelp(TextOProgramu);
                        zpracovano = true;
                        break;

                    default:
                        break;
                }
            }
            break;

    ...

    }

    return zpracovano;
}

V každé funkci formuláře, ve které se vyskytuje karta Editace (a to i neúplná), nejprve vyhodnotíme, zda uživatel nezvolil některý z příkazů na této kartě. Pokud naše aplikace obsahuje více společných karet uživatelské nabídky, provedeme jejich vyhodnocení a pak teprve budeme zpracovávat ty příkazy menu, které jsou v každém formuláři jiné.

Druhý způsob zpracování společných položek v menu je umístění funkce FunkceMenuKartyEditace() přímo do smyčky zpracování událostí. Tento způsob je jednodušší, ale není natolik názorný jako explicitní volání funkce FunkceMenuKartyEditace() v každé funkci formuláře, ve které je potřeba.

static Boolean UdalostZpracovanaAplikaci(EventPtr udalost)
{
    Boolean zpracovano = false;
    UInt16 cisloFormulare;
    FormPtr formular;

    if(udalost->eType == frmLoadEvent)
    {
        ...
    }
    else if(udalost->eType == menuEvent)
    {
        zpracovano = FunkceMenuKartyEditace(udalost->data.menu.itemID);
    }

    return zpracovano;
}

Doplněním obsluhy menu je naše jednoduchá šifrovací aplikace ukončena. Zdrojový text poslední verze aplikace si můžete stáhnout zde.

31. Uložení stavu programu jako domácí úkol

Zbývá doplnit šifrovací program o poslední důležitou vlastnost: uložení stavu programu tak, aby měl uživatel pocit multitaskingu. V předchozí kapitole jsme si uvedli funkce PrefGetAppPreferences() a PrefSetAppPreferences() pro čtení a zapisování stavu programu. V první části domácího úkolu doplňte aplikaci o uložení a čtení stavu programu. Nápověda:

  1. přesuňte všechny globální proměnné do jedné struktury
  2. definujte v zdrojovém textu konstanty tvůrce aplikace a verze stavu programu
  3. doplňte do funkce ZacatekAplikace() kód pro přečtení stavu programu; nezapomeňte na všechny kontroly správnosti dat
  4. pokud nebyl přečten stav programu, je potřeba inicializovat globální proměnné
  5. doplňte do funkce KonecAplikace() kód pro uložení stavu programu

Doplníme-li do naší aplikace předchozích pět bodů, bude mít uživatel při přepínání aplikací pocit multitaskingu. Práce s počítačem Palm Pilot se tím ještě více přiblíží režimu, na který je uživatel zvyklý.


Tak skončila čtvrtá kapitola. V kapitole páté si povíme jednak o seznamech, které jsou velmi silným nástrojem pro uživatelský vstup, a jednak se naučíme ovládat černobílý grafický výstup na displej Palm Pilota. Ke kreslení se pak vrátíme ještě v sedmé kapitole, kdy si povíme o pokročilých prvcích grafiky a barvách. Zatím budeme postupně vytvářet jednoduchý černobílý kreslicí program.





Nejčtenější

ZTE Axon M
Výjimečný rozevírací smartphone je tu, ale konstrukce je zvláštní

Na rozkládací smartphony s ohebnými displeji se čeká už nějaký ten pátek. Nové ZTE Axon M sice přináší rozevírací koncepci, ovšem ohebný displej nemá. To...  celý článek

TrueDepth fotoaparát u iPhonu X
Čelní foťák iPhonu X doženou ostatní nejdřív za dva roky, tvrdí analytik

Příchod iPhonu X očekávají nejspíše desítky milionů applistů z celého světa. Po třech letech okoukaného designu totiž přijde zcela nový přístroj s obřím...  celý článek

KRACK: Key Reinstallation Attacks
Nepříjemné překvapení: I vaše wi-fi je zranitelná, odhalili experti

Bezpečnostní odborníci varují: zabezpečení bezdrátového připojení wi-fi pomocí WPA2 nelze považovat za bezpečné. Výzkumníci upozorňují, že zranitelností...  celý článek

Huawei Mate 10 Lite
První top model, který nestojí ani 10 000 Kč. Smiřte se ale s ústupky

O tom levnějším z nových top smartphonů firmy Huawei jsme se toho během mnichovské premiéry moc nedozvěděli. Novinka Mate 10 Lite přijde do prodeje dříve než...  celý článek

Fidget spinner mobil pořídíte za asi 350 korun.
Hit letošního roku už můžete mít i jako mobil. Stojí několik stovek

Hračka původně určená k relaxaci, fidget spinner, je hitem letošního roku. Její slávy využil výrobce z Hongkongu, který do ní vtěsnal celý funkční mobil....  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

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

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.