planirano za 15.05 ... održaće se 18.05 ... Ponavljanje gradiva + tekst domaćeg zadatka
( ponavljamo: Programiranje upravljano događajima )
Nadam se da ste pregledali video lekcije.
Ovo je dopuna video lekcijama, a na kraju su zadati domaći zadaci. Domaće zadatke predajete OVDE.
U ovoj lekciji ćemo obnoviti događaje i programiranje događaja. Biće predstavljen jedan primer event – driven – programming-a. Takođe će biti objašnjeni Event Handler i Solution Explorer.
Ključna pitanja: Šta su to događaji u Visual C#? Kako se programiraju događaji? Šta je to Solution Explorer i kako se koristi?
Da se podsetimo: objekat Button (dugme) smo već koristili – dodavanje iz ToolBox-a ili programski. Ako se želi postaviti neki tekst na dugme, onde se u Properties izmeni deo pod stavkom Text (umesto teksta Button… ).
Sa dvoklikom na komponentu, otvara se editor za pisanje programskog koda. Recimo, ako se izvede dvoklik na komponentu Button, podrazumevani događaj je Click – programsko okruženje će da generiše kompletan programski okvir, dok programer treba samo da ubaci instrukcija koje treba da se izvršavaju.
Da se podsetimo: Događaj (event) je neka akcija korisnika.
Većina Windows aplikacija radi tako da odgovara na neke akcije korisnika. Neki događaj, (engl. event ) je praćen odgovorom, tj reakcijom programa. Na primer, pritiskanje dugmeta da se započne nešto. U stvari, vrši se pisanje instrukcija u programu, tj kodiranje aplikacije. Ove instrukcije, tj neki blok programskog koda, će biti izvršen kada se desi neki događaj. Odgovor se sastoji od izvršavanja instrukcija od strane programa, onda kada se neki događaj desi. Ovo je tzv. Event-driven programming – programiranje vođeno događajima.
Klasičan primer događaja je kliktanje dugmeta na ekranu, gde se kliktanje obavlja pomoću računarskog miša.
Do sada je ovo više puta demonstrirano na časovima vežbi.
Funkcija koja odgovara nekom događaju zove se Event Handler.
Kod programiranja aplikacija, Event Handler je programski kod koji treba napisati i koji će se izvršiti kada se neki događaj (event) desi.
Na časovima vežbi su osobine objekata najčešće postavljane pomoću Property editor-a. Ređe je korišćeno zadavanje osobina pomoću programskog koda. Ovo drugo je bolje, jer se u programu mogu menjati osobine, i to dok program radi.
Dosad smo koristili i znamo, da objekat Button, sem na događaj kliktanja, može da reaguje na čitavu listu događaja. U Properties Window postoji ikonica za Events, tj ikonica koja izgleda kao neka munja (lightning flash) i ako se to selektuje, prikazuje se lista mogućih događaja.
Ako se uradi dvoklik u prostoru sa desne strane događaja, npr pored događaja MouseHover, pojavljuje se tekst editor - kostur programskog koda koji će se izvršavati kada se desi taj događaj.
Ovo je lepo ilustrovano u prethodnom video času.
Šta ako se pojave greške?
Jednostavno, izvršavanje se prekida i prikazuje se poruka o grešci , tzv Error message.
(sem ako ste obradili grešku! - radili smo Exception)
Ako postoje sintaksne greške, tj greške u kucanju programskog koda, onda se program neće pokrenuti, već će se pojaviti poruka u stilu: „There were build errors, continue? Yes or No?“
Treba odgovoriti sa No, i u Task List pogledati listu greški. Dvoklik na grešku će vam pokazati gde se desila greška (mada ponekad to može biti u liniji iznad ).
Help – meni
Koliko god da mislimo da znamo sve što nam treba, postoje momenti kada nam je potrebna pomoć.
U liniji sa menijima postoji Help meni i tu se bira Contents da bi se pristupilo online verziji Visual C# Manuals,
Ako se postavi kursor na neku reč oko koje je potrebna pomoć, i pritisne F1, to će da pruži pomoć oko te reči.
Solution Explorer
Neke aplikacije mogu da sadrže više formi, neke ne moraju da imaju ni jednu formu, već više delova čistog programskog koda. Neki projekti mogu da budu veliki, gde može da bude puno elemenata u njima, tako da je teško ispratiti sve odjednnom.
Solution Explorer je prozor koji prikazuje sve elemente u jednom projektu.
Ako ovaj prozor nije vidljiv, idete na View meni i nađite ga tamo, ili koristite Ctrl+Alt+1
Kako sačuvati projekat ?
(ovo je samo podsećanje, trebalo bi da svi znate, ali se za svaki slučaj podsetite)
Projekat se sastoji od dosta fajlova koji se čuvaju na disku. Među njima su: projektni fajl (sa ekstenzijom .csproj), C# fajlovi (sa ekstenzijom .cs ), i drugi propratni fajlovi, ...
Ako se izabere Save iz File menija, samo onaj fajl koji je trenutno aktivan se sačuvava.
Da bi se sačuvao ceo projekat, treba odabrati
Save All
A ako zatvarate programsko okruženje, pitaće vas da li da sačuvate izmene koje nisu sačuvane.
U dobrom delu verzija programskog okružanja, fajlovi se automatski sačuvaju prilikom izvršavanja projekta.
Domaći zadatak
Učenik treba u komentarima, na početku C# koda, napiše svoje podatke, a na početnu formu treba da se postavi da tekst u gornjoj liniji forme prikazuje ime i prezime učenika, kao i za koju ocenu „radi“.
najlakši zadatak (za 2):
1. Napraviti C# Gui aplikaciju koja ima 3 polja za unos (ime, prezime, JMBG). Napraviti dugme u donjem desnom delu ekrana i napraviti akciju da kada korisnik klikne na dugme program spoji unete podatke sa zarezima i prikaže kroz MessageBox
malčice teži zadatak (za 3):
2. Napraviti C# GUI aplikaciju koja ima 4 polja za unos 4 različita imena i prezimena. U donjem desnom uglu postaviti dugme. Pritiskom na dugme korisniku treba da se prikaže u MessageBox-u najduže uneseno ime
još malčice teži zadatak (za 4)
3. Napraviti C# GUI aplikaciju koja ima 2 polja za unos brojeva i jedan element/objekat (vi razmislite koji) u kojem se bira operacija koja treba da se izvrši. Postaviti dugme. Klikom na dugme treba da se izvrši operacija, rezultat da se prikaže u MessageBox-u. Razmisliti kako rešiti problem da program ne „puca“ ako dođe do deljenja sa nulom
i najteži od zadataka u ovoj grupi (za 5)
4. Napraviti C# Gui aplikaciju koja ima 3 polja za unos (ime, prezime, JMBG). Napraviti dugme u donjem desnom delu ekrana i napraviti akciju da kada korisnik klikne na dugme program unese te podatke u bazu koja se nalazi na računaru. Kao dodatni zadatak razmisliti kako postaviti dugme koje ako se pritisne, prikazuje se da li već u bazi postoji takav podatak
Rok za izradu domaćeg zadatka je četvrtak, 21.05 u 14h
Napomena: verzija Visual Studija u kojoj se radi nije bitna - isti način je u 2010 i u 2019, a slično je i u SharpDevelop, ....