Premium

Získejte všechny články
jen za 89 Kč/měsíc

Programování pro PalmOS počítače krok za krokem (59)

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

Neomezená data dává O2 ještě levněji než dříve. S odměnou jsou za hubičku

15. dubna 2024  7:02

Základní datově neomezený tarif za cenu nižší, než standardně stojí tarif s 12 GB dat? U O2 na...

Doma si natáhnete neviditelné kabely k internetu. Huawei ukázal inovace

17. dubna 2024

Huawei na každoroční roadshow ukázal v Praze své inovace pro letošní rok. Vedle průmyslových...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

K mobilu teď dostanete televizi zdarma a levnější jsou také iPhony

16. dubna 2024,  aktualizováno  10:12

Výrobci mobilních telefonů se už zase začínají předhánět ve výhodných nabídkách. Přímé slevy jsou...

Čínský smartphonový standard dorazil do Česka. Není co vytknout, ani cenu

17. dubna 2024  7:02

Motorola představila hned tři modely z top řady Edge. První se začne prodávat model Edge 50 Pro,...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Mají dost kompromisů, sem tam něco navíc. Nejlevnější mobily známých značek

19. dubna 2024

Výrobci telefonů mají zpravidla řešení i pro ty zákazníky, kteří potřebují co možná nejlevnější...

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Tento podnik budou milovníci vína zbožňovat. Musí se ovšem vzdát mobilu

18. dubna 2024  12:33

Se zajímavým způsobem, jak strávníky přimět ke vzájemné komunikaci, přišel majitel restaurace v...

Ultra smartphone i odlehčená novinka. Motorola zahustila nabídku

18. dubna 2024

Společně s modelem Pro se na český trh chystají ještě další dvě novinky od Motoroly. Jednou je...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

Náhle zemřel zpěvák Maxim Turbulenc Daniel Vali, bylo mu 53 let

Ve věku 53 let zemřel zpěvák skupiny Maxim Turbulenc Daniel Vali. Letos by se svou kapelou oslavil 30 let na scéně....

Sexy Sandra Nováková pózovala pro Playboy. Focení schválil manžel

Herečka Sandra Nováková už několikrát při natáčení dokázala, že s odhalováním nemá problém. V minulosti přitom tvrdila,...

Charlotte spí na Hlaváku mezi feťáky, dluží spoustě lidí, říká matka Štikové

Charlotte Štiková (27) před rokem oznámila, že zhubla šedesát kilo. Na aktuálních fotkách, které sdílela na Instagramu...

Vykrojené trikoty budí emoce. Olympijská kolekce Nike je prý sexistická

Velkou kritiku vyvolala kolekce, kterou pro olympijský tým amerických atletek navrhla značka Nike. Pozornost vzbudily...

Rohlík pro dítě, nákup do kočárku. Co v obchodě projde a kdy už hrozí právník?

V obchodech platí pravidla, která občas zákazník nedodržuje. Někdy se navoní parfémem, aniž by použil tester, nebo...