Programování PocketPC naruby (5/12)

Patříte mezi uživatele PocketPC, kteří by si rádi také něco naprogramovali, řadíte se však k tzv. falešným začátečníkům? Pak právě vám je určen náš seriál věnovaný programování pro kapesní počítače s Windows Mobile. Dnešní díl věnujeme návrhu vlastní aplikace.
V minulém díle jsme si představili popis ukončení aplikace. V dnešní části našeho seriálu si popíšeme návrh vlastního programu.

Jednoduchá aplikace

Nyní můžeme přistoupit k návrhu vlastní aplikace; zvolíme si velmi jednoduchou aplikaci, na níž si ukážeme základní kroky při návrhu a vytvoření aplikace:

  • Kde a jak budou uložena data aplikace
  • Kde bude uloženo nastavení aplikace
  • Obsah hlavního okna aplikace, nabídka hlavního okna
  • Uživatelské rozhraní - dialogy, výzvy, ikony, funkční klávesy
  • Spolupráce se stolním PC

Aplikace se bude jmenovat LIST a bude obsahovat jednoduchý seznam (například úkolů nebo věcí, které je třeba nakoupit). U každé položky seznamu bude ikona, kterou bude moci uživatel změnit; změnou ikony bude vyjádřen stav položky (hotovo - nakoupeno a podobně). Budou použity jen tři ikony - nevyplněná, zeleně odfajfkovaná a červeně přeškrtnutá.

Aplikace LIST bude spolupracovat s obdobnou aplikací, která poběží na stolním počítači; spolupráce bude pro jednoduchost zajištěna pouze prostřednictvím synchronizace souboru obsahujícího položky seznamu.

Při návrhu budeme postupovat tak, že po základní rozvaze vytvoříme program pro stolní počítač, který odladíme a poté upravíme pro použití na kapesních počítačích. Tento postup může být leckdy pro začátečníky (kteří se řadu věcí učí metodou pokus-omyl) jednodušší, protože cyklus překladu a spuštění aplikace pro stolní počítač je výrazně rychlejší.

Uložení dat

Data aplikace budou uložena v jednoduchém textovém souboru se jménem List.TXT. Na každém řádku souboru bude jedna položka. Řádky budou obsahovat číslo ikony (0-2), oddělovač a text příslušné položky.

Zde však narazíme na první problém: zatímco stolní Windows používají 8-bitové kódování ASCII, tak Windows CE používají 16-bitový UNICODE. Pokud na obou počítačích vytvoříme textový soubor s písmenky "ABC", tak na stolním bude mít délku 3 byte a na kapesním počítači bude mít délku 6 byte.

Aby Microsoft zjednodušil práci s textem na různých platformách, zavedl celkem tři typy pro uložení textových dat: char, WCHAR a TCHAR. Rozdíly mezi typy char a WCHAR udává následující tabulka:

  char WCHAR
Velikost (sizeof(...)) 1 byte 2 byte
funkce pro kopírování řetězců strcpy(char*, char*) wcscpy(WCHAR*, WCHAR*)
otevření souboru fopen(char*, char*)
soubor obsahuje znaky ASCII
_wfopen(WCHAR*, WCHAR*)
soubor obsahuje znaky UNICODE

Pro převod mezi char a WCHAR slouží funkce mbstowcs a wcstombs. Převod je závislý na správném jazykovém nastavení příslušného operačního systému, na kterém tyto funkce spouštíme.

Pro zjednodušení je zde navíc typ TCHAR, který je na platformě stolních Windows považován za jednobytový char a ve Windows CE za dvoubytový WCHAR. Proto všechny funkce, které mají jako parametr typ TCHAR budou přeloženy se správným typem znaků pro danou platformu.

Pro naši aplikaci z toho plynou následující požadavky:

  • Kdekoliv budeme pracovat s textem, použijeme typ TCHAR. To zajistí optimální uložení textu na platformě, pro kterou překlad provádíme.
  • Pro uložení do souboru použijeme ve všech operačních systémech (Windows i Windows CE) funkci fopen, která pracuje s 8-bitovými znaky v kódování ASCII. Pokud budeme program překládat pro platformu, kde jsou znaky 16-bitové (na Windows CE), převedeme char na WCHAR pomocí funkce mbstowcs například takto:

    TCHAR* text = ...;
    char line[MAXTEXT];
    int icon = ...;

#ifdef _UNICODE
     wcstombs(line, text, MAXTEXT); // Převádíme
#else
     strncpy(line, text, MAXTEXT); // Pouze kopírujeme
#endif

     fprintf(f, "%d|%s\n", icon, line);

Uložení dat zapouzdříme do jednoho objektu s názvem například Storage. Tento objekt, který zajistí uložení dat, budeme využívat na obou platformách.

V další části se podíváme na nastavení a hlavní okno aplikace.

  • Nejčtenější

V květnu se zřejmě vrátí ikonická Nokia 3210, kdysi to byl přelomový model

24. března 2024  8:01

Současný vlastník značky Nokia na poli mobilních telefonů, firma HMD (Human Mobile Devices –...

Banka spustila mobilní datové balíčky. Funguje to i zákazníkům z Česka

26. března 2024  12:06

Virtuální banka Revolut spouští virtuálního celosvětového operátora. Zákazníci si mohou kupovat...

{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...}

Z bídného začátku roku se radují. Vypadá to na velký návrat

21. března 2024  7:02

Zřejmě to vypadá na velký návrat. Huawei začíná drtit své domácí konkurenty, přitom jeho produkty...

Trvalo to. Nový nejlepší fotomobil světa konečně koupíte i v Česku

26. března 2024  7:02

Konečně nastává situace, že nejlepší fotomobil v žebříčku DxO Mark je dostupný i na našem trhu....

{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...}

Pochlubili se, že se pochlubí. Značky ze sebe dělají slibotechny

25. března 2024  7:02

Jedním z trochu nečekaných trendů veletrhu MWC v Barceloně se stala oznámení o tom, že firmy nějaké...

U foťáků se blýská na lepší časy, naznačuje výsledek testu nového xiaomi

28. března 2024  7:02

Čínská značka Xiaomi trochu na poli fotomobilů v uplynulých letech tápala. Ukazuje to mimo jiné...

Kartónek Steva Jobse se vydražil za neuvěřitelnou sumu

28. března 2024

Vizitku slavného ředitele společnosti Apple si někdo pořídil za pořádný balík peněz. Přidanou...

Smartphonům od Googlu raketově rostou prodeje tam, kde kraluje Apple

27. března 2024  7:02

Prodeje smartphonů Pixel od Googlu se mohou pochlubit neskutečným nárůstem prodejů. Tedy prozatím...

Podívejte se na chloubu Ostravy z pohledu, který se vám běžně nenaskytne

27. března 2024

Operátor O2 informoval, že ve spolupráci se společností Cetin dokončil modernizaci své mobilní sítě...

FOR KIDS by měl být zážitkem pro celou rodinu, říká Monika
FOR KIDS by měl být zážitkem pro celou rodinu, říká Monika

Monika Pavlíčková (35 let) je maminkou dvou dcer, sedmileté Terezy a čtyřleté Laury, a zároveň také manažerkou obchodního týmu společnosti ABF,...

Rána pro britskou monarchii. Princezna Kate má rakovinu, chodí na chemoterapii

Britská princezna z Walesu Kate (42) se léčí s rakovinou. Oznámila to sama ve videu na sociálních sítích poté, co se...

Smoljak nechtěl Sobotu v Jáchymovi. Zničil jsi nám film, řekl mu

Příběh naivního vesnického mladíka Františka, který získá v Praze díky kondiciogramu nejen pracovní místo, ale i...

Rejžo, jdu do naha! Balzerová vzpomínala na nahou scénu v Zlatých úhořích

Eliška Balzerová (74) v 7 pádech Honzy Dědka přiznala, že dodnes neví, ve který den se narodila. Kromě toho, že...

Kam pro filmy bez Ulož.to? Přinášíme další várku streamovacích služeb do TV

S vhodnou aplikací na vás mohou v televizoru na stisk tlačítka čekat tisíce filmů, seriálů nebo divadelních...

Stále víc hráčů dobrovolně opouští Survivor. Je znamením doby zhýčkanost?

Letošní ročník reality show Survivor je zatím nejkritizovanějším v celé historii soutěže. Může za to fakt, že už...