Premium

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

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

Zahajujeme již čtvrtou kapitolu seriálu o programování pro PalmOS kapesní počítače.

Programování pro Palm Piloty krok za krokem - kapitola 4

V této kapitole si povíme o políčkách pro vstup textu a o způsobech jejich ovládání. Naučíme se tato políčka spojovat s posuvníky nebo šipkami tak, aby bylo text možné rolovat po displeji. Popíšeme si také jak pracovat s uživatelskou nabídkou (menu) a hardwarovými klávesami pro pohyb nahoru a dolů. To vše si ukážeme na příkladu jednoduchého šifrovacího programu, který postupně vytvoříme.

4.1. Návrh programu

I tuto kapitolu začneme detailním návrhem programu. Budeme vytvářet program, který jednoduše zašifruje nebo dešifruje vstupní text pomocí zadaného hesla. Na příkladu tohoto programu se naučíme používat nejrůznější vlastnosti políček pro vstup textu.

Program bude obsahovat dva formuláře: vstupní, ve kterém budeme moci zadat vstupní text a heslo, a výstupní, do kterého přejdeme stisknutím tlačítka a ve kterém se zobrazí zašifrovaný nebo dešifrovaný text. Oba dva formuláře vidíme na následujícím obrázku:

Mezi formuláři budeme přecházet po stisknutí příslušného tlačítka pomocí funkce FrmGotoForm().

4.2. Políčka pro vstup textu v souboru prostředků aplikace

Ve druhé kapitole jsme se dozvěděli, že do formuláře vkládáme políčka pro vstup textu pomocí klíčového slova FIELD. Za klíčovým slovem uvádíme číslo prostředku pomocí ID n a pozici na displeji uvedením AT (umístění a velikost). Připomeňme si, jaké všechny vlastnosti může políčko mít:

  • USABLE nebo NONUSABLE udává, zda je políčko při vykreslení formuláře zobrazené nebo ne.
  • Uvedeme-li vlastnost DISABLED, tak políčko nebude reagovat na vstup uživatele.
  • LEFTALIGN nebo RIGHTALIGN určuje, zda bude text v políčku zarovnán doleva nebo doprava.
  • FONT n definuje číslo písma. Pro podrobné informace o písmech se podívejte do druhé kapitoly.
  • EDITABLE a NONEDITABLE udávají, zda bude text v políčku možné měnit. Text v políčku s vlastností NONEDITABLE je možné posouvat nebo označovat, ale nemůžeme jej změnit.
  • UNDERLINED určuje, zda bude políčko zobrazeno podtržené.
  • Pomocí SINGLELINE nebo MULTIPLELINES určujeme, zda bude mít políčko jeden nebo více řádků. Je-li políčko definováno s vlastností MULTIPLELINES, tak je počet řádků dán velikostí plochy na displeji, kterou políčko zabírá, a výškou použitého písma.
  • Pokud použijeme DYNAMICSIZE, tak se bude počet řádků políčka při zapisování dlouhého textu zvětšovat.
  • MAXCHARS n určuje, kolik nejvíce znaků může uživatel zapsat do políčka. Tato vlastnost nijak neomezuje délku textu v políčkách s vlastností NONEDITABLE.
  • AUTOSHIFT nastaví automaticky velké písmeno na začátku políčka.
  • NUMERIC použijeme, pokud budeme do políčka zapisovat pouze číslice 0-9.
  • A konečně HASSCROLLBAR použijeme u políček, která jsou spřažena s posuvníkem.

Připomeneme-li si všechny tyto definice, tak bude jednoduché napsat soubor prostředků aplikace tak, aby popisoval formuláře na obrázku nahoře. Ve vstupním formuláři budou obě políčka (vstup textu i vstup hesla) editovatelná a pod políčkem pro vstup textu budou opakovací tlačítka se šipkou nahoru a dolů. Ve výstupním formuláři použijeme políčko, které nebude možné editovat, a vedle něj umístíme posuvník.

Protože délka textu ve výstupním formuláři se bude měnit, budeme jednotlivé vlastnosti posuvníku nastavovat až v programu a na hodnotách, které uvedeme za MAX, MIN, PAGESIZE a VALUE, v souboru prostředků aplikace nezáleží. Přesto je musíme vyplnit - použijeme smyšlené hodnoty. Nesmíme také zapomenout uvést v levém dolním rohu každého formuláře, ve kterém zapisujeme text, ukazatel stavu graffiti.

Soubor prostředků aplikace, se kterým začínáme psát naši aplikaci, je v následujícím rámečku:

#include "sifruj.h"

APPLICATIONICONNAME ID 1000 "Sifruj"
VERSION ID 1001 "1.0"
APPLICATION ID 1002 "NECO"

ICON "ikona.bmp"

FORM ID FormularVstupni AT (0 0 160 160)
BEGIN
    TITLE "Sifrovaci program"
    LABEL "Text:" AUTOID AT (5 18)
    FIELD ID PoleTextVstupni AT (5 30 150 80) LEFTALIGN EDITABLE UNDERLINED MULTIPLELINES MAXCHARS 500 AUTOSHIFT
    REPEATBUTTON "\001" ID OpakujTextNahoru AT (142 PREVBOTTOM 10 10) NOFRAME FONT 5
    REPEATBUTTON "\002" ID OpakujTextDolu AT (PREVLEFT PREVBOTTOM 10 10) NOFRAME FONT 5
    LABEL "Heslo:" AUTOID AT (5 124)
    FIELD ID PoleHeslo AT (PREVRIGHT PREVTOP 100 AUTO) LEFTALIGN EDITABLE UNDERLINED SINGLELINE MAXCHARS 50
    PUSHBUTTON "Zasifruj" ID PrepinacZasifruj AT (5 144 AUTO AUTO) GROUP 1
    PUSHBUTTON "Desifruj" ID PrepinacDesifruj AT (PREVRIGHT+1 PREVTOP AUTO AUTO) GROUP 1
    BUTTON "OK" ID TlacitkoZakoduj AT (RIGHT@135 PREVTOP AUTO AUTO) FRAME
    GRAFFITISTATEINDICATOR AT (150 150)
END

FORM ID FormularVystupni AT (0 0 160 160)
BEGIN
    TITLE "Zakodovany text"
    FIELD ID PoleTextVystupni AT (5 18 145 121) LEFTALIGN NONEDITABLE MULTIPLELINES UNDERLINED MAXCHARS 500 HASSCROLLBAR
    SCROLLBAR ID PosuvnikTextVystup AT (RIGHT@159 PREVTOP 7 PREVHEIGHT) VALUE 10 MIN 0 MAX 100 PAGESIZE 10
    BUTTON "Zpet" ID TlacitkoZpet AT (5 144 AUTO AUTO) FRAME
    BUTTON "Kopiruj vse" ID TlacitkoKopirujVse AT (RIGHT@155 PREVTOP AUTO AUTO) FRAME
END

Na začátku souboru vkládáme hlavičkový soubor sifruj.h, který obsahuje všechny konstanty, které v souboru prostředků aplikace používáme.


Příště si připomeneme znovu základní kostru programu a zkusíme si program spustit v emulátoru. Pak začneme s popisem zacházení s políčky textu.

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

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

Do konce měsíce výhodná střední třída. Test smartphonu Vivo V40 SE

28. dubna 2024

Vivo uvedlo do střední třídy smartphonů zajímavý stylový model V40 SE. Ten je důkazem toho, jak...

Dětem neprodáváme. Britské děti si dost možná už smartphone nekoupí

27. dubna 2024

Premium Britští ministři zvažují přijetí zákona, který by omezoval prodej smartphonů. Jsou totiž...

Váš iPhone může být hacknut, varuje Apple uživatele v desítkách zemích

27. dubna 2024

Jednotlivci z řad uživatelů iPhonů z více než devadesáti zemí světa obdrželi ve středu 10. dubna od...

Úřad chce zatočit se spoofingem. Podezřelé hovory operátoři nespojí

26. dubna 2024  16:02

Český telekomunikační úřad (ČTÚ) vydal novelu všeobecného opatření, která stanovuje nové podmínky,...

Samoživitelka skončila v nemocnici a čtvrt roku nemohla pracovat
Samoživitelka skončila v nemocnici a čtvrt roku nemohla pracovat

Téměř deset miliard korun – tolik jen za loňský rok poslaly pojišťovny lidem za úrazy, závažná onemocnění či úmrtí. Životní pojištění pomohlo za...

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

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

Horňáci versus dolňáci. Víme, čemu muži dávají přednost, a je to překvapení

Ženské tělo je pro muže celkově velmi atraktivní a nabízí jejich očím mnoho zajímavých partií. Největší pozornosti se...

Hello Kitty slaví padesátiny. Celý svět si myslí, že je to kočička, jenže není

Kulatý obličej se dvěma trojúhelníkovýma ušima, drobný čumáček, vousky a červená mašle na uchu. Taková je Hello Kitty,...

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