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

aktualizováno 
Dnes doplníme náš program o funkci šifrování a ukážeme si, jak přenášet data mezi formuláři.

4.12. Nejjednodušší funkce pro šifrování

Pro účel prvního příkladu doplníme naši aplikaci o jednoduchou šifrovací a dešifrovací funkci. Funkci předáváme vstupní text, heslo a ukazatel na proměnnou, do které bude uložen výsledný text. Parametr smer určuje, zda bude funkce text šifrovat nebo dešifrovat. Prototyp šifrovací funkce je v následujícím rámečku:

void Sifruj(Char* vystup, Char* vstup, Char* heslo, Boolean smer)

Nyní doplníme volání funkce Sifruj() do zdrojového kódu aplikace. Většinu kódu umístíme do funkce vstupního formuláře. Na obrázku, na kterém navrhujeme chování aplikace, to bude vypadat takto:

Většinu kódu jsme umístili do funkce vstupního formuláře. V následujícím rámečku si můžeme prohlédnout zjednodušenou funkci vstupního formuláře. Vstupní text i heslo ukládáme do globálních proměnných gHeslo a gPuvodniText. Podle hodnoty přepínačů (které jsou v jedné skupině: je-li jeden zapnut, je druhý z nich určitě vypnut) nastavíme směr šifrování.

Stav přepínačů, které určují směr šifrování, ukládáme do globální proměnné gZasifruj. Všechny globální proměnné musíme inicializovat ve funkci ZacatekProgramu().

static Boolean UdalostVstupnihoFormulare(EventPtr udalost)
{
    switch(udalost->eType)
    {
        case ctlSelectEvent:

            switch(udalost->data.ctlSelect.controlID)
            {
                case TlacitkoZakoduj:

                        // Zasifrovani

                    smer = CtlGetValue((ControlPtr)Objekt(PrepinacZasifruj));
                    KopirujTextPolicka(PoleHeslo, gHeslo, 50);
                    KopirujTextPolicka(PoleTextVstupni, gPuvodniText, 500);
                    Sifruj(gNovyText, gPuvodniText, gHeslo, smer);

                        // Skok do vystupniho formulare

                    FrmGotoForm(FormularVystupni);
                    zpracovano = true;
                    break;

                default:
                    break;
            }
            break;

        default:
            break;
    }

    return zpracovano;
}

Ve funkci výstupního formuláře jen naplníme výstupní políčko příslušným obsahem globální proměnné gNovyText. Zjednodušenou funkci výstupního formuláře uvádíme v následujícím rámečku:

static Boolean UdalostVystupnihoFormulare(EventPtr udalost)
{
    switch(udalost->eType)
    {
        case frmOpenEvent:

                // Zkopirovani vystupniho textu do policka

            NastavTextPolicka(PoleTextVystupni, gNovyText);

            FrmDrawForm(FrmGetActiveForm());
            zpracovano = true;
            break;

        case ctlSelectEvent:

            switch(udalost->data.ctlSelect.controlID)
            {
                case TlacitkoZpet:
				
                       // Návrat zpět
				
                    FrmGotoForm(FormularVstupni);
                    zpracovano = true;
                    break;
            } 
    }

    return zpracovano;
}

Zdrojový kód aplikace si můžeme prohlédnout zde.

4.13 Špinavá políčka

U každého políčka, které se nachází ve formuláři, je uložen údaj o tom, zda jsou data v políčku čistá nebo špinavá. Čistá jsou data, která uživatel nezměnil, a špinavá jsou data, která byla uživatelem změněna. Pokud uložíme do políčka nějaký text (například funkcí FldSetTextHandle() nebo funkcí FldSetTextPtr()), tak je políčko označené jako čisté.

Boolean FldDirty(const FieldType* políčko)

Zjistí, zda bylo políčko uživatelem po nastavení změněno.

Vstupní parametry
  • políčko - ukazatel na strukturu obsahující data políčka
Vrácená hodnota
  • true - políčko bylo uživatelem změněno
  • false - text v políčku nebyl uživatelem změněn

Změní-li uživatel text políčka, označí jej operační systém PalmOS jako špinavé. Funkce FldDirty() v takovém případě vrátí logickou hodnotu true. Naše aplikace může pomocí funkce FldDirty() testovat, která políčka uživatel ve formuláři změnil.

void FldSetDirty(FieldType* políčko, Boolean špinavé)

Nastaví příznak špinavého (změněného) políčka.

Vstupní parametry
  • políčko - ukazatel na strukturu obsahující data políčka
  • špinavé - příznak, zda byl obsah políčka změněn

Políčko je jako čisté označeno nastavením nového textu. Voláním funkce FldSetDirty() můžeme příznak špinavosti políčka přímo nastavit nebo vymazat. 


V příštím dílu si povíme o prvním, nejjednodušším způsobu, jak rolovat obsahem políčka nahoru a dolů pomocí opakovacích tlačítek.





Nejčtenější

iPhone X
iPhonů X bude zoufale málo. Vyprodáno může být za pár minut

Uvedení iPhonu X se blíží, předobjednávky Apple spustí za několik dnů a první kusy zamíří ke koncovým zákazníkům už 3. listopadu. Telefonů však bude ve...  celý článek

iPhone X
Je to konec mýtické čtečky v displeji? Výrobci sázejí na obličej

Čtečka otisků integrovaná do displeje měla být jednou z hlavních letošních inovací na poli smartphonů. Technologie je ovšem natolik složitá, že výrobci od...  celý článek

Honor 6A
Nenápadný premiant nižší třídy. Vyzkoušeli jsme Honor 6A

Nejlevnější model v nabídce značky Honor je dobrým příkladem toho, jak se mají dělat levné smartphony. Soustředí se na baterii, kvalitu displeje a na systém,...  celý článek

Nové ovládací centrum umožňuje přidávat další funkce.
Nový Android má extrémně málo smartphonů. U Applu je to úplně jinak

Díky tomu, že Apple si sám vyvíjí software i hardware, je aktualizace iPhonů a iPadů velmi snadná. Naopak Android má roztříštěnou základnu přístrojů od tisíců...  celý článek

Navigace testuje majáky v pražskému tunelu
V tunelu se už neztratíte. Pomáhají majáky za 610 korun

Populární navigační aplikace Waze se v Praze možná dočká příjemného vylepšení. V tunelu, kde není dostupný signál z navigačních satelitů GPS, se bude...  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
S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha situacích je totiž neocenitelným pomocníkem....  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.