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 (33)

aktualizováno 
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ší

Nový „levný“ iPhone má být hit. Prodat se ho má 100 milionů

Trojice iPhonů pro rok 2018

Apple chystá na letošní rok tři nové iPhony. Jedním z nich má být levnější model, který nebude mít OLED displej. A...

Vytrolil T-Mobile, koupil doménu z reklamy a přesměroval ji na konkurenci

T-Mobile Hotel Růženka

Nová reklamní kampaň T-Mobilu se odehrává ve smyšleném horském hotelu Růženka. Ovšem když zkusíte doménu...



Nepoužívejte smartphony Huawei a ZTE, varují Američany FBI, CIA i NSA

Huawei Mate 10 Pro bude v USA k dostání u BestBuy

Huawei chtěl letos vzít útokem Spojené státy, a to s pomocí tamních klíčových operátorů. Z možné dohody však nakonec...

Teď přijde řada na naše peníze. V Číně totiž končí zlaté časy

Xiaomi Mi 6

Čínský trh s chytrými telefony je největší na světě, ale loni se podle všeho dostal do potíží. Po letech růstu přišel...

Lidé si stěžovali na špatný signál. Rušil ho těžař bitcoinů

(Ilustrační snímek)

Newyorští zákazníci amerického operátora T-Mobile si stěžovali na znatelný šum během telefonních hovorů. Ukázalo se, že...

Další z rubriky

Šetří místo i data. Dietní Messenger od Facebooku je i v Česku

Aplikace Facebook Messenger Lite je dostupná i v Česku

Facebook Messenger je jedním z nejpoužívanějších kecálků, ale ne všechny telefony si s ním poradí. Loni se tak zrodila...

Ušetříte za mobilní data. Facebook vám ukáže bezplatnou wi-fi

Find Wifi funkce na Facebooku

V aplikaci sociální sítě Facebook se objevila nová užitečná funkce - dovede vás nasměrovat k nejbližší veřejné wi-fi...

S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Ilustrační snímek

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha...

Domácí chipsy pro děti
Domácí chipsy pro děti

Upečte si domácí chipsy, ale pozor, jsou velice návykové.



Najdete na iDNES.cz