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

V dnešním dílu uděláme krátkou odbočku, ve které si povíme o tom, jak je možné použít textové konstanty pro nápovědu. Po této odbočce doplníme do našeho postupně vznikajícího programu první funkci - ošetření tlačítka nápovědy.

3.14. Využití textových konstant

Ve druhé kapitole jsme se naučili definovat v souboru prostředků aplikace textové konstanty. Tato definice začíná klíčovým slovem STRING, po kterém následuje jednoznačná identifikace textové konstanty a text. Text může být na jednom nebo na více řádcích.

STRING ID JednoznacnaIdentifikace "Text..."

STRING ID JednoznacnaIdentifikace "Text..." \
                                  "...další text..." \
                                  "...a další text"

Tyto konstanty můžeme v naší aplikaci využít jako nápovědu pomocí funkce FrmHelp(). Této funkci předáme jako parametr jednoznačnou identifikaci textové konstanty.

void FrmHelp(UInt16 id)

Zobrazí formulář nápovědy.

Vstupní parametry
  • id - hodnota jednoznačné identifikace textové konstanty, která bude zobrazena ve formuláři nápovědy.

Funkce FrmHelp() zobrazí na displeji formulář nápovědy, ve kterém bude zobrazen text příslušné textové konstanty, která byla definována v souboru prostředků aplikace. V této konstantě může být použit znak '\n' označující vynucený přechod na nový řádek. Příklad dialogu nápovědy si můžete prohlédnout na obrázku dále.

Druhým možným využitím textových konstant je jejich zkopírování do řetězcové proměnné. K tomu slouží funkce operačního systému SysCopyStringResource().

void SysCopyStringResource(Char* text, Int16 id)

Zkopíruje textovou konstantu do řetězce.

Vstupní parametry
  • id - hodnota jednoznačné identifikace textové konstanty, která bude zkopírována do řetězce text
Výstupní parametry
  • text - proměnná, do které bude text zkopírován

Funkce SysCopyStringResource() neprovádí kontrolu délky kopírovaného řetězce. V naší aplikaci si musíme dát dobrý pozor, abychom do řetězcové proměnné neukládali text, který by přesáhl její velikost.

3.15. Druhý krok - oživení tlačítka pro nápovědu

Nyní můžeme do našeho programu doplnit ošetření tlačítka nápovědy. Vyjdeme z programu, který jsme vytvořili na začátku této kapitoly. Tento program nejprve doplníme o příslušnou textovou konstantu s textem nápovědy, například takto:

STRING ID TextOProgramu "Metoda stanoveni cilové vysky ditete dle midparenta\n\n"             "Vzorovy priklad z knihy \"Programování pro " 			...

Nesmíme zapomenout ani na definici příslušné konstanty TextOProgramu v hlavičkovém souboru vyska.h.

Takto definovanou textovou konstantu můžeme použít jako nápovědu, kterou zobrazíme na displeji pomocí funkce FrmHelp(). Nápověda, která se zobrazí na displeji při zavolání funkce FrmHelp(TextOProgramu), je na následujícím obrázku:

Funkci formuláře doplníme o ošetření zprávy ctlSelectEvent, která je generována po stisknutí libovolného tlačítka.

I když máme zatím ve formuláři jen jedno tlačítko, nesmíme zapomenout na větvení podle hodnoty parametru udalost->data.ctlSelect.controlID. Pouze v tom případě, obsahuje-li tento parametr jednoznačnou identifikaci tlačítka s otazníkem, zobrazíme nápovědu a necháme funkci dialogu vrátit hodnotu true. Doplněná funkce formuláře je v následujícím rámečku:

static Boolean UdalostHlavnihoFormulare(EventPtr udalost)
{
	Boolean zpracovano = false;

	switch(udalost->eType)
	{
		case frmOpenEvent:
			FrmDrawForm(FrmGetActiveForm());
			zpracovano = true;
			break;

		case ctlSelectEvent:

				// Tato udalost je volana vzdy pri stisknuti tlacitka.
				// Parametrem je mimo jine i cislo prostredku prvku formulare.
				// Vystupni parametr |zpracovano| muzeme nastavit jen
				// u tlacitek, ktera skutecne obsluhujeme.
				
			switch(udalost->data.ctlSelect.controlID)
			{
				case TlacitkoOProgramu:
					FrmHelp(TextOProgramu);
					zpracovano = true;
					break;
					
				default:
					break;
			}
			break;
			
		default:
			break;
	}

	return zpracovano;
}

Zdrojový text vytvořené aplikace pro Palm Pilot si můžete stáhnout zde. Pokud se nyní perem dotknete tlačítka s otazníkem, zobrazí se standardní dialog, ve kterém si můžete prohlédnout text nápovědy. Po opuštění tlačítkem Done se vrátíme zpět do našeho formuláře.


V příštím dílu si ukážeme, jak nastavovat a zjišťovat hodnotu přepínačů a políček k zaškrtnutí jednotlivě i po skupinách.

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

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

Pliveme vám do piva. Centrum Málagy zaplavily nenávistné vzkazy turistům

Mezi turisticky oblíbené destinace se dlouhá léta řadí i španělská Málaga. Přístavní město na jihu země láká na...