Premium

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

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

Spotem s Trojanem na horách operátor popudil Poláky. Nerozuměli nadsázce

21. dubna 2024  8:01

Po dvojici Vojtěch Kotek a Lukáš Pavlásek, k níž později přibyl Jakub Kohák, vsadil T-Mobile ve...

Je to už spíš foťák s mobilem a opravdu se povedl. Test Xiaomi 14 Ultra

21. dubna 2024

Prémiový smartphone Xiaomi 14 Ultra působí mezi současnou nabídkou mobilů jako unikát. Jaký jiný...

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

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Vodafone měl výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se nemohli...

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

Operátoři zahušťují pokrytí Česka signálem 5G. Máte ho doma? Podívejte se

20. dubna 2024

Premium V červenci to budou již čtyři roky, co byla v Česku spuštěna první komerční 5G síť. Zatímco v...

Xiaomi už se nebude držet zpátky. Pro řadu T chystá další prémiové funkce

26. dubna 2024

Smartphony řady T od Xiaomi mají vždy parádní výbavu, ale zároveň i pár kompromisů, aby trochu...

Vodafone měl výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se nemohli...

Toto mohl být nevídaný smartphone. Myšlenku však nakonec poslali k vodě

25. dubna 2024

S takovým smartphonem bychom už nikdy nemuseli řešit, že se zpomaluje, nemá dostatek paměti či je...

Samsung má povedenou stylovku. Zkusí to s ní na trhu, kde se mu nedaří

24. dubna 2024

Samsung po velmi dlouhé době oprášil modelovou řadu Galaxy C a představil stylový smartphone se...

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

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

Bývalý fitness trenér Kavalír zrušil asistovanou sebevraždu, manželka je těhotná

Bývalý fitness trenér Jan Kavalír (33) trpí osmým rokem amyotrofickou laterální sklerózou. 19. dubna tohoto roku měl ve...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Největší mýty o zubní hygieně, kvůli kterým si můžete zničit chrup

Možná si myslíte, že se v péči o zuby orientujete dost dobře, přesto v této oblasti stále ještě existuje spousta...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...

Za vytlačení z linky do Brna musí Student Agency zaplatit náhradu 21 milionů

Společnost Student Agency provozující autobusy a vlaky pod označením RegioJet musí zaplatit bývalému konkurentovi 21...