mobilná komunikácia - Vitajte na stránkach www.einsty.hostujem.sk

mobilná komunikácia - Vitajte na stránkach www.einsty.hostujem.sk mobilná komunikácia - Vitajte na stránkach www.einsty.hostujem.sk

einsty.hostujem.sk
from einsty.hostujem.sk More from this publisher
12.07.2015 Views

P R O G R A M U J E M EAko ste si urèite všimli, zmenili sme iba poradie pre−chádzania vetiev. Teraz si však musíme zabezpeèi, aby saèasti obrazovky, ktoré sme u vykreslili, neprekres¾ovaliznovu. Môeme to urobi cez dodatoèný buffer, v ktorombudeme uchováva informácie o tom, èi u je bod vykres−lený, alebo nie. Ak na danej pozícii ešte nie je vykreslenýbod, môeme ho vykresli. Pri tejto metóde však na kadýpixel potrebujeme minimálne ïalší jeden prístup do pamä−te, èo by náš program spoma¾ovalo. Výhodnejšia budepouitie S−buffera:Vychádzame z predpokladu, e kadý polygón vykres−¾ujeme po riadkoch. Vytvoríme si špeciálny buffer, v kto−rom budeme uchováva vo¾né úseky na obrazovke. Prekadý jeden riadok budeme ma zoznam vo¾ných úsekov,pri ktorých budeme pozna, kde sa zaèínajú a kde konèia.Buffer by mohol vyzera takto:typedef struct{/*x1 bude uchováva zaèiatok vo¾ného úseku a x2 budeuchováva koniec vo¾ného úseku*/short x1[sirka_obrazovky],x2[sirka_obrazovky];/*premenná pocet bude uchováva poèet vo¾ných úsekov nadanom riadku*/short pocet;}line_buffer;/*Vytvoríme si buffer, ktorý bude pre kadý riadok uchová−va zoznam vo¾ných úsekov*/line_buffer free_l_buffer[vyska_obrazovky];Pred zaèatím vykres¾ovania polygónu si tento buffer vypl−níme potrebnými hodnotami:for(i=0;i

P R O G R A M U J E M Ev tomto prípade meno. Pôvodný kód teda doplníme o va−lidátor RequiredFieldValidator (v zdrojovom kóde zvýraz−nený hrubším fontom).void Kliknutie(Object Src, EventArgs E){Message.Text = “Vitaj “ + Name.Text;}RequiredFieldValidatorMeno: Najskôr si overíme fungovanie nášho prvého pouitéhovalidátora a potom sa vrátime k princípu a syntaxi. V prípa−de, e pouívate¾ nechá nevyplnené políèko Name, validá−tor vypíše varovný oznam: Zadaj svoje meno!RequiredFieldValidatorPrincíp èinnosti tohto validátora je ve¾mi jednoduchý.RequiredFieldValidator kontroluje neprázdnos zadáva−cieho po¾a.Všeobecný syntaktický predpis na pouitie Required−Field validátora je nasledujúci:CompareValidator. Tento validátor kontroluje zadanúhodnotu s referenènou, prípadne s hodnotou iného po−¾a. Notoricky známym a v praxi ve¾mi èasto pouívanýmpríkladom je overovanie hesla pri jeho zadaní, èi sme sanapríklad nedopustili preklepu, ktorý by nám mohol vbudúcnosti ve¾mi znepríjemni ivot. Všeobecný syntaktic−ký predpis na pouitie tohto validátora je nasledujúci:A teraz u avizovaný príklad s kontrolou zadaného hes−la, v ktorom vzájomne porovnávame dve zadané hodnoty:CompareValidatorZadaj heslo: Zopakuj heslo: Opisova princíp tejto stránky by bolo nosením drevado lesa, no podstatné je, e jej funkcionalitu má v tomtoprípade na starosti CompareValidator.Zatia¾ sme ukázali porovnanie hodnôt dvoch prvkovmedzi sebou. Èastým prípadom bude urèite aj porovnanieobsahu textového prvku s konštantou alebo s obsahompremennej. Týmto sa naša pozornos venovaná porovná−vaciemu validátoru nekonèí, pretoe ho budeme pravde−podobne pouíva ve¾mi èasto. Ukáeme si príklad „testo−vacej“ stránky, na ktorej môeme interaktívne precvièivšetky funkcie validátora.V záhlaví ASP.NET stránky sú pouité tri procedúry. Pro−cedúra Button_Click „zvidite¾ní“ rezultát validátora. Po−mocou procedúry Operator_Index_Changed nastavímepríslušný operátor ako parameter validátora a následnevalidátor aktivujeme. Nastavenie poadovaného dátovéhotypu a následnú aktiváciu validátora má na starosti pro−cedúra Type_Index_Changed.void Button_Click(Object sender, EventArgs e){// *************if (Page.IsValid) {lblOutput.Text = “Rovnost!”;}else {lblOutput.Text = “Nerovnost!”;}}void Operator_Index_Changed(Object sender, EventArgse){// **********************// Aktivuj validator pri zmene operatoraCompare1.Operator =(ValidationCompareOperator)ListOperator.SelectedIndex;CompareValidatorTestovacia stránka pre CompareValidatorCompare1.Validate();}void Type_Index_Changed(Object sender, EventArgs e){// **********************// Aktivuj validator pri zmene datoveho typuCompare1.Type =(ValidationDataType)ListType.SelectedIndex;Compare2.Type =(ValidationDataType)ListType.SelectedIndex;Compare1.Validate();}V tele stránky sú inicializované a naplnené dva prvkytypu ListBox, jeden na výber operátora a druhý na výberdátového typu.CompareValidatorRetazec 1:Porovnavaci operator:EqualNotEqualGreaterThanGreaterThanEqual LessThanLessThanEqual DataTypeCheckRetazec 2:

P R O G R A M U J E M Ev tomto prípade meno. Pôvodný kód teda doplníme o va−lidátor RequiredFieldValidator (v zdrojovom kóde zvýraz−nený hrubším fontom).void Kliknutie(Object Src, EventArgs E){Message.Text = “Vitaj “ + Name.Text;}RequiredFieldValidatorMeno: Naj<strong>sk</strong>ôr si overíme fungovanie nášho prvého pouitéhovalidátora a potom sa vrátime k princípu a syntaxi. V prípa−de, e pouívate¾ nechá nevyplnené políèko Name, validá−tor vypíše varovný oz<strong>na</strong>m: Zadaj svoje meno!RequiredFieldValidatorPrincíp èinnosti tohto validátora je ve¾mi jednoduchý.RequiredFieldValidator kontroluje neprázdnos zadáva−cieho po¾a.Všeobecný syntaktický predpis <strong>na</strong> pouitie Required−Field validátora je <strong>na</strong>sledujúci:CompareValidator. Tento validátor kontroluje zadanúhodnotu s referenènou, prípadne s hodnotou iného po−¾a. Notoricky známym a v praxi ve¾mi èasto pouívanýmpríkladom je overovanie hesla pri jeho zadaní, èi sme sa<strong>na</strong>príklad nedopustili preklepu, ktorý by nám mohol vbudúcnosti ve¾mi znepríjemni ivot. Všeobecný syntaktic−ký predpis <strong>na</strong> pouitie tohto validátora je <strong>na</strong>sledujúci:A teraz u avizovaný príklad s kontrolou zadaného hes−la, v ktorom vzájomne porovnávame dve zadané hodnoty:CompareValidatorZadaj heslo: Zopakuj heslo: Opisova princíp tejto stránky by bolo nosením drevado lesa, no podstatné je, e jej funkcio<strong>na</strong>litu má v tomtoprípade <strong>na</strong> starosti CompareValidator.Zatia¾ sme ukázali porov<strong>na</strong>nie hodnôt dvoch prvkovmedzi sebou. Èastým prípadom bude urèite aj porov<strong>na</strong>nieobsahu textového prvku s konštantou alebo s obsahompremennej. Týmto sa <strong>na</strong>ša pozornos venovaná porovná−vaciemu validátoru nekonèí, pretoe ho budeme pravde−podobne pouíva ve¾mi èasto. Ukáeme si príklad „testo−vacej“ stránky, <strong>na</strong> ktorej môeme interaktívne precvièivšetky funkcie validátora.V záhlaví ASP.NET stránky sú pouité tri procedúry. Pro−cedúra Button_Click „zvidite¾ní“ rezultát validátora. Po−mocou procedúry Operator_Index_Changed <strong>na</strong>stavímepríslušný operátor ako parameter validátora a následnevalidátor aktivujeme. Nastavenie poadovaného dátovéhotypu a následnú aktiváciu validátora má <strong>na</strong> starosti pro−cedúra Type_Index_Changed.void Button_Click(Object sender, EventArgs e){// *************if (Page.IsValid) {lblOutput.Text = “Rovnost!”;}else {lblOutput.Text = “Nerovnost!”;}}void Operator_Index_Changed(Object sender, EventArgse){// **********************// Aktivuj validator pri zmene operatoraCompare1.Operator =(ValidationCompareOperator)ListOperator.SelectedIndex;CompareValidatorTestovacia stránka pre CompareValidatorCompare1.Validate();}void Type_Index_Changed(Object sender, EventArgs e){// **********************// Aktivuj validator pri zmene datoveho typuCompare1.Type =(ValidationDataType)ListType.SelectedIndex;Compare2.Type =(ValidationDataType)ListType.SelectedIndex;Compare1.Validate();}V tele stránky sú inicializované a <strong>na</strong>plnené dva prvkytypu ListBox, jeden <strong>na</strong> výber operátora a druhý <strong>na</strong> výberdátového typu.CompareValidatorRetazec 1:Porov<strong>na</strong>vaci operator:EqualNotEqualGreaterThanGreaterThanEqual LessThanLessThanEqual DataTypeCheckRetazec 2:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!