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

Rekordní pokuta pro Google, za dominanci Androidu zaplatí 112 miliard

Ilustrační snímek

Evropská komise uložila internetovému gigantu Google další pokutu. Firma by měla platit za to, že zneužívá dominantního...

Blesková krádež. Zloději za 30 sekund vybílili obchod Applu

Blesková krádež v kalifornském Apple Storu

Skupina mužů za méně než minutu vykradla před očima zákazníků i personálu obchod Apple Store v kalifornském Fresnu....



Xiaomi pokračuje v dumpingových akcích. Redmi S2 bude za 300 korun

Nová prodejna mobilů v Olomouci přilákala stovky lidí

Agresivní marketing čínské značky v Česku pokračuje. Xiaomi otevírá třetí obchod a tradičně první den nabízí produkty s...

Novinka za 975 korun nahradí smartphone a nepotřebuje dotykový displej

JioPhone 2

Obyčejné mobily nejsou mrtvé. Právě naopak. Jestliže prodeje smartphonů stagnují, nebo na některých trzích dokonce...

Nový supersmartphone vysune kameru a nahrává uživatele bez jeho vědomí

Vivo NEX

V rámci právě skončeného mistrovství světa ve fotbalu byla hrací plocha obklopena panely s reklamami na nový čínský...

Další z rubriky

Sem chodí smartphony umřít. Aplikaci lze použít jen s vybitou baterií

Die With Me

Aplikace s názvem Umři se mnou má velmi neobvyklé omezení. Nemůžete ji zapnout, pokud máte telefon nabitý víc než na...

Bez reklamy ani ránu. Bude už i na Facebook Messengeru v mobilu

Mobilní Messenger projde změnou, k nelibosti uživatelů v něm budou cílené...

Oblíbený mobilní kecálek se brzy promění. Facebook totiž do Messengeru po úspěšném testování implementuje cílené...

Aplikace ukazovala otravující čísla. Data kradl antivir přímo z mobilů

Škodlivý kód Cooligan napadá zařízení s Androidem 4 a 5

Zajímavý model vymyslelo studio DU. Jedna jejich android aplikace ukazovala, kdo volá, včetně obtěžujících čísel...

Najdete na iDNES.cz