Beleženje števila vseh zagonov aplikacije na svetu

Beleženje števila vseh zagonov aplikacije na svetu

Avtor: Ernest Gungl

Učni cilji: Poznam osnovne programske konstrukte ter programske konstrukte za delo z internetno podatkovno bazo (TinyWebDB) in jih smiselno uporabljam: shranjevanje in pridobivanje podatkov iz internetne podatkovne baze

Naloga:

Sestavite enostavno aplikacijo za risanje črt po ekranu. Na vrhu aplikacije se naj z velikimi številkami izpiše, kolikokrat je bila aplikacija na SVETU že zagnana. Dodajte še gumb za brisanje risbe.

Primer izdelane aplikacije prikazuje spodnja slika:

(sl1.PNG)

Namig:

Uporabite risarsko platno (Canvas) ter pripadajočega upravitelja dogodkov Canvas.Touched. Za beleženje števila zagonov uporabite internetno podatkovno bazo TinyWebDB.

Rešitev :

Uporabniški vmesnik oblikujemo v oknu Designer

Ker je ta naloga (Beleženje števila zagonov aplikacije na svetu) iz sklopa delo z internetno podatkovno bazo, je osnovni namen te naloge prav ta. Vmesnik te naloge je identičen nalogi »Beleženje števila zagonov aplikacije na lokalni napravi«, le programska koda se razlikuje od nje. Zamenjana je le komponenta TinyDB s TinyWebDB, ki jo najdemo v skupini Storage bloka Palette ter odstranjeni oznaki, ki sta bili namenjeni prikazu števila pik narisane risbe (oznaki preprosto odstranimo s klikom na ustrezni gradnik, za tem pa pritisnemo gumb Delete v urejevalniku Design, ki je namenjen sestavljanju uporabniškega vmesnika).

(sl2.PNG) (sl3.PNG) (sl4.PNG)

Za izdelavo uporabniškega vmesnika poglejte gradivo NAUK z naslovom »Beleženje števila zagonov aplikacije na lokalni napravi«.

Za sestavljanje programske kode kliknemo na gumb Blocks :

Za risanje črt po ekranu potrebujemo platno, ki smo ga namestili v grafičnem vmesniku. Ob kliku na omenjen gradnik v urejevalniku kode (Blocks) izberemo upravitelja dogodkov Canvas.Dragged, ki nas oskrbi z mnogimi koordinatami. Za nas sta najpomembnejši dve točki: (prevX, prevY) in (currentX, currentY). Ta upravitelj je prožen zmeraj, ko vlečemo miško po kliku gumba. Točka (startX, startY) je predstavlja točko, ko smo črto začeli risati (klik gumba na miški). Ker je ta upravitelj dogodkov klican nenehno po vlečenju (dragging) miške, postane trenutna točka ekrana - na začetku risanja je to točka (startX, startY) predhodna točka (prevX, prevY), nova trenutna točka pa (currentX, currentY), ki ob naslednjem klicu upravitelja dogodkov spet postane točka (prevX, prevY).

(sl5.PNG)

Za risanje uporabimo metodo Canvas.DrawLine, ki nariše delček črte med točko (prevX, prevY) in točko (currentX, currentY). Ob kliku gumba brisiEkranButton1 pokličemo metodo za brisanje platna Canvas.Clear.

(sl6.PNG)

Obe omenjeni metodi in upravitelja dogodkov najdemo znotraj skupine Canvas v urejevalniku kode. Uvedba globalnih spremenljivk je nujna, ko želimo neko vrednost uporabiti v več blokih. Za potrebe shranjevanja in prikazovanja števila zagonov aplikacije vpeljemo (pod Built In -> Variables) globalno spremenljivko steviloZagonovPrograma. Uvedba globalnih spremenljivk je nujna, ko želimo neko vrednost uporabiti v več blokih.

(sl7.PNG)

Ob zagonu aplikacije (Screen.Initialize) moramo prebrati trenutno število zagonov le-te iz internetne podatkovne baze, saj želimo informacijo o številu zagonov aplikacije po vsem svetu. Za to kličemo metodo TinyWebDB.GetValue s parametrom (nalepko) steviloZagonov. Metoda ne vrne ničesar, le prosi podatkovni strežnik za podatek (čakanje na podatek bi lahko trajalo predolgo). Metodo najdemo znotraj skupine metod in upraviteljev dogodkov TinyWebDB (urejevalnik kode Blocks).

(sl8.PNG)

Ko bazni strežnik odgovori prošnji s podatkom, prejme le tega upravitelj dogodkov TinyWebDB.GotValue. Le ta nas oskrbi z dvema podatkoma. Prvi je tagFromWebDB, ki pove na katero zahtevo je prišel odgovor (v našem primeru je zahteva samo ena, to je ime nalepke »steviloZagonov«), drugi podatek pa je valueFromWebDB, ki predstavlja želen prejeti podatek (število trenutnih zagonov aplikacije, shranjeno na internetnem strežniku). Če prejeti podatek lahko predstavlja število, njegovo vrednost priredimo globalni spremenljivki steviloZagonovPrograma in spremenljivko povečamo za 1, s čimer upoštevamo trenutni zagon aplikacije.

(sl9.PNG)

Če prebran podatek ne predstavlja števila, vrednosti globalne spremenljivke priredimo vrednost 1 (upoštevamo trenutni zagon aplikacije). Sedaj moramo korigirane vrednosti števila zagonov aplikacije steviloZagonovPrograma shraniti na internetni strežnik. To storimo s pomočjo metode TinyWebDB.StoreValue. Vrednost spremenljivke steviloZagonovPrograma (valueToStore) shranimo pod oznako (tag) »steviloZagonov«, kot smo to že opazili ob branju podatka iz internetnega podatkovnega strežnika. Posodobljeno vrdnost zagonov naše aplikacije tudi prikažemo na zaslonu (steviloZagonovLabel1.Text = steviloZagonovPrograma).

0%
0%