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

Během letu si chtěl natočit vedle letící letadlo, telefonu mu ovšem vypadl z...
Samsung mu vypadl z letícího letadla a nerozbil se

Může smartphone přežít pád ze 300 metrů, když i náraz z jen půlmetrové výšky mívá často fatální následky? Někdy zjevně ano. Třeba jeden tři roky starý Samsung...  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

Google Pixel 2 od HTC.
Pixel 2 na prvním obrázku. Vypadá to na hodně konzervativní přístroj

Letos se dočkáme druhé generace smartphonů Pixel od Googlu. Základní model některými vlastnostmi možná nepříjemně překvapí. Jinak bude ze staré školy.  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

Soyes 6S
Nejmenší „iPhony“ na světě můžete mít za 1 300 korun

Kopie iPhonů nejsou žádnou novinkou, v čínských e-shopech jich najdeme desítky více či méně povedených. Mezi ty minimálně zajímavé patří mini smartphony Soyes....  celý článek

Další z rubriky

Logo aplikace Sarahah
Už přes ni vyhrožovali smrtí. Přesto je aplikace extrémně populární

Vysoký nárůst popularity zaznamenala aplikace Sarahah, určená k posílání anonymních zpráv. Ačkoliv se v posledních týdnech těší velké oblibě, zahaluje ji také...  celý článek

Ilustrační snímek
Na dovolené se můžete seznámit i nespálit

Na dovolenou si bereme kde co, ovšem počítač/notebook často zůstává doma. Ten je na jedné straně prostředkem k pohodlnému přístupu k informacím, na druhé pak k...  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

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

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

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.