Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

Visual Basic .

NET Lekcije
Lekcija 01 - Pokretanje novog projekta i okruenje
Pre svega, dobrodoli na kurs programiranja u VB.Net 2008 okruenju. Da ponemo: Prvo to ete da dobijete na ekranu je:

Sledee to emo uraditi je:

Dodaemo objekat Button (dugme za izvravanje komandi) Dodaemo objekat Label (naslov) Izmeniemo svojstva nae forme

Oba objekta emo dobiti dvosrtukim klikom na svaki od njih u Toolbox-u. Dobili smo nae prve objekte Button1 i Label1, potrebno je da ih razmestimo po formi. Nakon razmetanja, naim objektima promeniemo odreena svojstva:

Dodeliemo im nazive tako to emo im u prozoru Properties promeniti svojstvo (Name). Za dugme umesto nazivaButton1 uneemo naziv Dugme a za labelu umesto naziva Label1 uneemo naziv Labela

Promeniemo tekst ispisan na dugmetu i labeli tako to emo im proeniti svojstvo Text. Za dugme umesto tekstaButton1 uneemo text Dugme a za labelu umesto teksta Label1 uneemo tekst Labela.

Da bi pokrenuli novi projekat potrebno je da u padajuem meniju izaberemo File > New Project (Ctrl+N). Dobili smo prozor New Project. U okviru ovog prozora na levoj strani u navigaciji Project Types potrebno je da izaberemoVisual Basic > Windows. Nakon toga u desnom prozoru Templates potrebno je da izaberemo Windows Forms Application a pri dnu prozora u polju Name da upiemo eljeni radni naziv aplikacije. Naoj aplikaciji daemo radni naziv Prvi Projekat. Nakon klika na dugme OK, pokrenuli smo na prvi projekat i dobili radno okruenje. Radno okruenje se sastoji iz nekoliko delova:

Izmeniemo svojstva nae forme na kojoj smo kreirali objekte dugme i labela tako to emo joj u prozoru Properties promeniti svojstvo (Name) u Aplikacija i svojstvo text u Aplikacija

Menjanje svojstva (Name)

Toolbox (levo) - Objekti Centralni radni panel (sredina) - Radna povrina / dizajn i programiranje Solution explorer (desno) - Projekti, forme... Properties (desno) - Svojstva objekata Error list (dole) - Lista moguih greaka Ovim smo naim objektima i formi dodelili svojstva i naa prva aplikacija je spremna za rad! Aplikaciju pokreemo tako to emo u padajuem meniju izabrati Debug > Start Debugging (F5). Naa prva aplikacija treba da izgleda ovako: Zatvoriemo nau aplikaciju, i na projekat a na pitanju izabraemo Save i u sledeem prozoru neemo nita menjati i kliknuti opet na Save.

Napomena: ukoliko na levoj strani nije aktivan prozor Toolbox aktiviraemo ga tako to emo prevui miem preko kartice toolbox i aktivirati klikom na dugme Auto Hide koje se nalazi pored dugmeta Close za zatvaranje Toolbox-a.

Lekcija 02 - Prvi kod


Nakon ponovnog pokretanja VB.Net-a 2008 dobili smo Start Page i da bi pokrenuli na zapoeti projekat u prozoru Recent Projects izabraemo stavku Prvi Projekat. Imamo pripremljenu prvu aplikaciju, vreme je da zadamo naim objektima odreene poslove. Da bi dugmetu komo smo za sad dali naziv Dugme dodelili odreeni posao potrebno je da na njega kliknemo dva puta. Dobili smo prozor za ureivanje koda aplikacije. Na kod treba da izgleda ovako: Public Class Aplikacija Private Sub Dugme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dugme.Click End Sub End Class Ceo kod koji se nalazi izmeu linija Public Class Aplikacija odnosi se na formu Aplikacija. Linije: Private Sub Dugme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dugme.Click i End Sub oznaavaju poetak i kraj koda za nae dugme. Da bi dugmetu dodelili odreeni posao potrebno je ubacimo kod izmeu ove dve linije. Zadatak: Klikom na dugme promeniti tekst ispisan u labeli Reenje: Ubaciemo kod kojim e se klikom na dugme u labeli pojaviti tekst "promena teksta u labeli". Kod za izvravanje ovakve komande glasi: Labela.Text = "promena teksta u labeli" dakle, ceo kod nae Aplikacije glasie: Public Class Aplikacija Private Sub Dugme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dugme.Click Labela.Text = "promena teksta u labeli" End Sub End Class Da bi se vratili na dizajn aplikacije kliknuemo n a karticu Form1.vb [Design] Private Sub Dugme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dugme.Click Labela.Text = "promena teksta u labeli" End Sub Private Sub drugoDugme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles drugoDugme.Click Labela.Text = "nova promena" End Sub End Class Da bi sprobali funkionalnost nae aplikacije pritisnuemo taster F5. Naa aplikacija na kraju druge lekcije treba da izgleda ovako: I End Class Da bi sprobali funkionalnost nae aplikacije pritisnuemo taster F5. Zadatak: kreirati novo dugme koje e da izvri novu promenu teksta u labeli u "nova promena". Reenje:

u toolboxu dvostrukim klikom na objekat Button ubaciemo novo dugme na formu. Pomeriemo ga ispod prvog dugmeta, promeniemo mu svojstvo Name u drugoDugme i svojstvo Text u "Drugo Dugme" i malo amo mu poveati dimenzije da bi text bio u potpunosti ispisan.

Dvostrukim klikom preiemo na kod aplikacije i na kod naeg drugog dugmeta uneemo sledeu liniju:

Labela.Text = "nova promena" ceo kod aplikacije treba da izgleda ovako: Public Class Aplikacija

Lekcija 03 - Ostali osnovni objekti


Podsetnik: u prethodnim lekcijama smo se upoznali saobjektima Button i Label. U lekciji 3 nastavljamo sa upoznavanjem sa osnovnim objektima. U ovoj lekciji obradiemo sledee objekte (ubaciemo svaki od njih na formu i rasporediti ih kao na slici ispod):

CheckBox - Osnovna namena: polje za potvrdu - potvrivanje odreene radnje ili ispitivanje da li e neki zadatak da se obavi Napomena: ima dva stanja - svojstvo Checked (True i False) - da li e odreeno posao biti obavljen RadioButton - Osnovna namena: izbor jedne od opcija Napomena: ima dva stanja - svojstvo Checked (True i False) koja opcija je izabrana. Od CheckBox-a se razlikuje po tome to se kod njega moe izabrati vie opcija odjednom a kod RadioButton -a je mogu izbor samo jedne od opcija. ListBox - Osnovna namena: lista podataka ComboBox - Osnovna namena: lista podataka sa padajuom listom Za sad toliko...u sledeoj lekciji proiemo kroz primere za svaki od navedenih objekata.

TextBox (unos podataka) PictureBox (slika) Timer (izvravanje odreenog koda u zadatom vremenskom periodu) CheckBox (polje za potvrdu) RadioButton (dugme za izbor opcija) ListBox (lista podataka) ComboBox (lista podataka sa padajuom listom)

Lekcija 04 - Primeri i tipovi podataka


Pre nego to ponemo obradiemo neke osnovne tipove podataka koje emo koristiti u ovom kursu.

Integer, Long (celi brojevi) Single, Double (realni brojevi) String (slova, brojevi i specijalni karakteri) Boolean (ima dva stanja - TRUE i FALSE)

VB.Net ima mogunost kreiranja virtuelnih objekata koji imaju za clij privremeno smetanje podataka u memoriji. Virt uelni objekti se kreiraju kodom: Dim ceoBroj as Integer Dim drugiBroj as Double Dim nekaRec as String TextBox - Osnovna namena: unos podataka radi dalje obrade Dozvoljava unos: svih vrsta karaktera (brojeve, slova i specijalne karaktere) PictureBox - Osnovna namena: prikaz slike Moe da primi: tpove slika (*.gif, *.jpg, *.jpeg, *.bmp, *.wmf, *.png) Napomena: ubacivanje slike vri se tako to u polju Image u svojstvima slike kliknemo na dugme oznaeno sa tri take. Zatim u prozoru Select Resource izaberemo Local Resource, kliknemo na dugme Import, pronaemo sliku i kliknemo na dugme OK. Dim onOff as Boolean Matematike operacije koje koristimo u VB.Net-u su:

Promena tipa podataka (Cast) Izraunavanje izraza u zagradama (izraz) Stepenovanje (^) Mnoenje i deljenje (*, /) Celobrojno deljenje (\) Ostatak pri deljenju (mod) Sabiranje i oduzimanje

Prioritet u izvravanju operacija postavljen kao to je i predstavljen iznad.

Zadatak: Kreirati dugme i labelu, dugmetu dodeliti naziv btnPrimer1, labeli naziv lblResenje, a u kodu dugmeta kreirati dva virtuelna objekta tipa Integer sa nazivima Broj1 i Broj2, dodeliti im vrednosti, sabrati ih i ispisati u lblResenje. Reenje: Private Sub btnPrimer1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrimer1.Click Dim Broj1 As Integer Dim Broj2 As Integer Broj1 = 17 Timer - Osnovna namena: izvravanje odreenog koda u zadatom vremenskom periodu Broj2 = 25 lblResenje.Text = Broj1 + Broj2 End Sub

Zadatak: Kreirati dugme (svojstvo Name - btnIzracunaj, Text Izracunaj zbir), labelu (Name - lblResenje, Text - Resenje) i dva TextBoxa (Prvi TextBox / Name - txtBroj1, Drugi TextBox / Name - txtBroj2) i napisati kod kojim emo klikom na dugme izraunati zbir dva broja uneena u txtBroj1 i txtBroj2 a reenje ispisati u lblResenje. Reenje: Private Sub btnIzracunaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzracunaj.Click lblResenje.Text = Val(txtBroj1.Text) + Val(txtBroj2.Text) End Sub Objanjenje: u kodu je korisena kodna re Val koja daje brojnu vrednost uneenog broja uTextBox jer je svojstvo Text tipaString a da smo u kodu ostavili liniju koja bi glasila: lblResenje.Text = txtBroj1.Text + txtBroj2.Text reenje ukucana dva broja npr. 12 i 12 bilo bi 1212. U primeru sa virtuelnim objektima dobili smo eljeno reenje bez ubacivanja rei Val jer su nam objekti bili tipa Integer. Zadatak: Kreirati formu sa objektima kao na slici. Ubaciti dugme (svojstvo Name - btnIzracunaj, svojstvo Text - Izracunaj), dva TextBox-a (Prvi TextBox / svojstvo Name - txtBroj1, Drugi TextBox / svojstvo Name - txtBroj2), labele redom (Prva labela / svojstvo Name - lblResenja, svojstvo Text - Reenja), (Druga labela / svojstvo Name - lblRezSabiranja, svojstvo Text -Rezultat sabiranja), (Trea labela / svojstvo Name - lblRezOduzimanja, svojstvo Text - Rezultat oduzimanja), (etvrta labela / svojstvo Name - lblRezMnozenja, svojstvo Text - Rezultat mnoenja), (Peta labela / svojstvo Name - lblRezDeljenja, svojstvo Text - Rezultat Deljenja) i napisati kod kojim emo klikom na dugme sabrati, oduzeti, pomnoiti, izdeliti dva broja uneena u txtBroj1 i txtBroj2 a reenja ispisati u labele tako to e za svaku operaciju ispred reenja biti ubaen odgovarajui tekst "Rezultat sabiranja je:", "Rezultat oduzimanja je:", "Rezultat mnoenja je:", "Rezultat deljenja je:".

Reenje: Private Sub btnIzracunaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzracunaj.Click lblRezSabiranja.Text = "Rezultat sabiranja je: " & Val(txtBroj1.Text) + Val(txtBroj2.Text) lblRezOduzimanja.Text = "Rezultat oduzimanja je: " & Val(txtBroj1.Text) - Val(txtBroj2.Text) lblRezMnozenja.Text = "Rezultat mnozenja je: " & Val(txtBroj1.Text) * Val(txtBroj2.Text) lblRezDeljenja.Text = "Rezultat deljenja je: " & Val(txtBroj1.Text) / Val(txtBroj2.Text) End Sub Nakon klika na dugme reenje treba da izgleda ovako:

Zadatak: Kreirati formu i na nju ubaciti labelu (svojstvo Name lblNaslov, svojstvo Text - Naslov), i TextBox (svojstvo Name txtUnosTeksta) i napisati kod kojim e se automatski pri unosu teksta u TextBox taj isti tekst ispisivati u labeli. Reenje: Ovaj zadatak uradiemo tako to emo u dogaajima za objekat txtUnosTeksta izabrati dogaaj TextChanged i uneti sledei kod za njega: Private Sub txtUnosTeksta_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUnosTeksta.TextChanged lblNaslov.Text = txtUnosTeksta.Text End Sub

Ovim kodom unoenjem teksta u TextBox identian text automatski e se ispisivati u labelu. Zadatak: Kreirati formu i na nju ubaciti 2 labele (Prva labela / svojstvo Name - lblNaslov, svojstvo Text - Naslov), (Druga labela / svojstvo Name - lblPredji, svojstvo Text - Predji Misem) i dugme (svojstvo Name - btnReset, svojstvo Text Reset) i napisati kod kojim e se prevlaenjem mia preko labele lblPrevuci u labeli lblNaslov ispisati "Dogaaj MOUSE MOVE...Stisni dugme Reset." a klikom na dugme e se u labeli lblNaslov ispisati "Naslov".

Reenje: Ovaj zadatak uradiemo tako to emo u dogaajima za objekat lblPredji izabrati dogaaj MouseMove i uneti sledei kod za njega: Private Sub lblPredji_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPredji.MouseMove lblNaslov.Text = "Dogaaj MOUSE MOVE...Stisni dugme Reset." End Sub

System.Object, ByVal e As System.EventArgs) Handles timTajmer.Tick lblNaslov.Text = Val(lblNaslov.Text) + 1 End Sub za drugi deo zadatka (vreme): Private Sub timVreme_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timVreme.Tick lblVreme.Text = TimeOfDay End Sub Objanjenje: Svojstvo Enabled (True - ukljuen, False - iskljuen Timer). Svojstvo Interval (vrednost 1000 oznaava 1 sekundu)

a za dugme uneti sledei kod: Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click lblNaslov.Text = "Naslov" End Sub Radi lakeg razumevanja i vebe ostale dogaaje isprobajte sami. Zadatak: Na formu dodati 2 objekta Timer (Prvi Timer / svojstvo Name - timTajmer, svojstvo Interval - 1000), (Drugi Timer / svojstvo Name - timVreme, svojstvo Interval - 1000, svojstvo Enabled - True),2 dugmeta (Prvo dugme / svojstvo Name btnStart, svojstvo Text - Start), (Drugo dugme / svojstvo Name - btnStop, svojstvo Text - Stop) i 2 labele (Prva labela / svojstvo Name - lblNaslov, svojstvo Text - 0), (Druga labela / svojstvo Name - lblVreme, svojstvo Text - Vreme) i napisati kod kojim e se pritiskom na dugme Start pokrenuti broja koji e svake sekunde broj u labeli poveavati za 1 a pritiskom na dugme Stop zaustaviti broja a u labeli e se prikazivati vreme. Reenje: za prvi deo zadatka: Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click timTajmer.Enabled = True End Sub Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click timTajmer.Enabled = False End Sub Private Sub timTajmer_Tick(ByVal sender As Napomena: skraenice lbl, btn, txt, tim... koriste se radi lakeg snalaenja u kodu aplikacije i prepoznava nju objekata.

Lekcija 05 - Petlja IF i naredba SELECT CASE


Ponekad emo imati porebu da preuzmemu kontrolu nad izvravanjem koda ili da ispitamo neki zavren deo koda i na osnovu toga da odredimo koji e deo koda dalje da se izvrava. Za to koristimo petlju IF. Opti oblik petlje IF je: IF upit1 AND upit2 = upit3 THEN upit4 ELSEIF upit1 AND upit2 < upit3 THEN upit5 ELSEIF ... THEN ELSE ... ENDIF Primeujemo da smo prvi put ubacili operatore poreenja (=, <). Oni se najee koriste prilikom kontrole toka. Operatori koji se koriste u VB.Net-u su: > Vee <= Manje ili jednako <> Razliito Zadatak: Na formu dodati TextBox (svojstvo Name - txtUnos) i Dugme (svojstvo Name - btnProvera, svojstvo Text - Proveri Broj) i uneti kod kojim e se pritiskom na dugme proveriti da je u txtUnos unet broj vei ili manji od 100 i ukoliko je manji u MsgBoxu dobiemo poruku "Broj je manji od 100", ukoliko je vei dobiemo poruku "Broj je vei od 100", ukoliko je broj jednak 100 dobiemo poruku "Broj je jednak 100" a ukoliko nije unet ni jedan broj dobiemo poruku "Niste uneli ni jedan broj!". < Manje >= Vee ili jednako

Reenje: Private Sub btnProvera_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProvera.Click If txtUnos.Text = "" Then MsgBox("Niste uneli ni jedan broj!") ElseIf txtUnos.Text > 100 Then MsgBox("Broj je vei od 100.") ElseIf txtUnos.Text < 100 Then MsgBox("Broj je manji od 100.") ElseIf txtUnos.Text = 100 Then MsgBox("Broj je jednak 100.") End If End Sub Napomena: U zadatku prvo smo ispitali da li je unet broj jer bi u suprotnom program proverio prvo da li je broj vei od 100 i vratio bi greku. Rad sa MsgBox-om: Koristili smo liniju MsgBox("Niste uneli ni jedan broj!") koja prikazuje poruku samo sa unetim textom. Poruka se moe dalje oblikovati tako to emo joj dodeliti simboliku ikonicu, druge dugmie i naslov. Simbolike ikonice koje emo obraditi su: MsgBoxStyle.Critical (ikona - X) MsgBoxStyle.Information (ikona - !) MsgBoxStyle.Question (ikona - ?) ikone se prikazuju unosom koda: MsgBox("Niste uneli ni jedan broj!", MsgBoxStyle.Critical) MsgBox("Niste uneli ni jedan broj!", MsgBoxStyle.Information) MsgBox("Niste uneli ni jedan broj!", MsgBoxStyle.Question) Drugi dugmii koje emo obraditi su: MsgBoxStyle.OkOnly (samo dugme OK) MsgBoxStyle.OkCancel (dugme OK i dugme CANCEL) MsgBoxStyle.YesNo (dugme YES i dugme NO) MsgBoxStyle.YesNoCancel (dugme YES, dugme NO i dugme CANCEL) koriste se unosom koda: MsgBox("Niste uneli ni jedan broj!", MsgBoxStyle.OkOnly) ... MsgBox("Niste uneli ni jedan broj!", MsgBoxStyle.YesNoCancel) Simbolike ikonice i drugi dugmii mogu da se koriste kombinovanjem jednih i drugih tako to unosimo kod tipa: MsgBox("Niste uneli ni jedan broj!", MsgBoxStyle.OkOnly+MsgBoxStyle.Critical) Uradiemo primer za korienje dugmia YES i NO. Zadatak: Uzeemo formu iz prethodnog zadatka i dodeliemo joj svojstvo Name - frmPrvaForma, a pored nje ubaciemo jo jednu

formu i njoj dodeliti svojstvo Name - frmDrugaForma, dodaemo jo jedno dugme (svojstvo Name - btnPrelazak, svojstvo Text Prei na drugu formu) i dodati kod kojim emo klikom na dugme dobiti poruku koja e postaviti pitanje "Da li elite da preete na drugu formu?" i koja e klikom na dugme YES prei na drugu formu a klikom na dugme NO ponititi pitanje. Reenje: Nova forma se ubacuje tako to emo u glavnom padajuem meniju izabrati: Project > Add Windows Form... U prozoru Templates ve je izabrana Windows Form, kliknuemo samo na ADD. Nakon toga promeniemo svojstvo druge forme Name - frmDrugaForma i uneti sledei kod: Private Sub btnPrelazak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrelazak.Click Dim Poruka As String Poruka = MsgBox("Da li elite da preeta na drugu formu?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Pitanje") If Poruka = MsgBoxResult.Yes Then frmDrugaForma.Show() End If End Sub Napomena: u primeru je korien i naslov poruke koji se unosi posle simbolikih ikonica i dugmia Poruka = MsgBox("Da li elite da preeta na drugu formu?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Pitanje") Naredba SELECT CASE Gornji zadatak (provera da li je broj manji ili vei od 100) moe da se izvede i na drugi nain korienjem naredbe Select Case: Private Sub btnProvera_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProvera.Click Select Case Val(txtUnos.Text) Case 0 MsgBox("Niste uneli ni jedan broj!",MsgBoxStyle.Information) Case Is < 100 MsgBox("Broj je manji od 100.",MsgBoxStyle.Information) Case Is > 100 MsgBox("Broj je vei od 100.",MsgBoxStyle.Information) Case 100 MsgBox("Broj je jednak od 100.",MsgBoxStyle.Information) End Select End Sub Uradiemo jo jedan primer za petlju IF. Zadatak: Na drugu formu iz prethodnog zadatka dodati dugme (svojstvo Name - btnDrugaProvera, svojstvo Text Druga provera), 2 CheckBox-a (prvi CheckBox / svojstvo Name - Opcija1, svojstvo Text - Opcija1), (prvi CheckBox / svojstvo Name - Opcija2, svojstvo Text - Opcija2) i ubaciti kod kojim emo klikom na dugme proveriti da li su ekirane opcije pojedinano, odvojeno i da li su uopte ekirane.

Reenje: Private Sub btnDrugaProvera_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDrugaProvera.Click
If Opcija1.Checked = False And Opcija2.Checked = False Then

MsgBox("Nije ekirana ni jedna opcija.", MsgBoxStyle.Information) ElseIf Opcija1.Checked = True And Opcija2.Checked = True Then MsgBox("Obe opcije su ekirane.", MsgBoxStyle.Information) ElseIf Opcija1.Checked = True And Opcija2.Checked = False Then
MsgBox("ekirana je Opcija 1.", MsgBoxStyle.Information)

Zadatak: Koristiemo prethodni zadatak. Ubaciti kod kojim e se klikom na dugme u ListBox izlistati NEPARNI brojevi od 1 do 1000 i nakon toga dobiti poruku "Brojevi su izlistani." Reenje: Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click Dim i As Integer Lista.Items.Clear() For i = 1 To 1000 Step 2 Lista.Items.Add(i) Next MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information) End Sub Namena: U kodu je koriena linija Lista.Items.Clear() koja pre izvrenja FOR petlje brie sve lanove liste jer bez nje svakim klikom na dugme na postojeu listu dodao bi se novi niz brojeva. Zadatak: Koristiemo prethodni zadatak. Ubaciti kod kojim e se klikom na dugme u ListBox izlistati PARNI brojevi od 1 do 1000 i nakon toga dobiti poruku "Brojevi su izlistani." Reenje:
Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click

ElseIf Opcija1.Checked = False And Opcija2.Checked = True Then MsgBox("ekirana je Opcija 2.", MsgBoxStyle.Information) End If End Sub Objanjenje: U zadatku koriena je relacija AND, u VB.Net-u koristiemo relacije AND, OR, NOT. NPR. da smo hteli da ispitamo da li je ekirana bilo koja od dve opcije koristili bi kod:
If Opcija1.Checked = True Or Opcija2.Checked = True Then ili ako smo hteli da proverimo da li Opcija1 "nije" ekirana koristili bi kod:

If Not Opcija1.Checked = True Then ovaj primer je isto to i: If Opcija1.Checked = False Then Napomena: Za vebu isti zadatak uraditi sa RadioButton-om i uraditi nekoliko primera za AND, OR i NOT.

Lekcija 06 - Petlje FOR i DO WHILE UNTIL


Opti oblik petlje FOR je: For i = 1 To n Step x Blok naredbi Next U ovom primeru i je broja, a Step je korak brojanja. Radi lakeg razumevanja prelazimo na primere. Zadatak: Na formu ubaciti dugme (svojstvo Name - btnIzlistaj, svojstvo Text - Izlistaj) i ListBox (svojstvo Name - Lista) i ubaciti kod kojim e se klikom na dugme u ListBox izlistati brojevi od 1 do 100 i nakon toga dobiti poruku "Brojevi su izlistani." Reenje: Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click Dim i As Integer For i = 1 To 100 Lista.Items.Add(i) Next MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information) End Sub

Dim i As Integer Lista.Items.Clear() For i = 2 To 1000 Step 2 Lista.Items.Add(i) Next


MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information)

End Sub Petlja moe da se prekine linijom Exit For u odreenom trenutku ako je zadovoljen neki uslov. Primer:
Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click

Dim i As Integer Lista.Items.Clear() For i = 2 To 1000 Step 2 Lista.Items.Add(i) If i >= 500 Then Exit For End If Next
MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information)

End Sub

Objanjenje: Iako je postaljena petlja koja izlistava parne brojeve od 1 do 1000 prekidom petlje izlistae se samo parni brojevi od 1 do 500. DO WHILE UNTIL Ima dva oblika: sa izlazom na dnu i sa izlazom na vrhu. Petlja sa izlazom na dnu: Do Blok naredbi Exit Do Loop While Until Karakteristika ove petlje je da se jednom mora izvriti jer se provera uslova za izlazak iz petlje vri na dnu p etlje. Petlja sa izlazom na vrhu: Do While Until Blok naredbi Exit Do Loop Karakteristika ove petlje je da se najpre proverava uslov pa se tek onda ulazi u petlju. Zbog te osobine ove petlje se ne moraju ni jednom izvriti. Uradiemo dva primera vezana za petlju Do While Until. Zadatak: Na postojeu formu dodati dugme (svojstvo Name btnPrebaci, svojstvoText - Prebaci), TextBox (svojstvo Name txtIzabrano) i jedan ComboBox (svojstvo Name PadajucaLista) i napisati kod kojim e se klikom na dugme btnIzlistaj u Listu izlistati brojevi od 1 do 100, klikom na nei lan liste taj lan prikazati u txtIzabrano a klikom na dugme btnPrebaci dodavati izabrani brojevi iz Liste u Padajucu Listu. Reenje: Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click Dim i As Integer i = 1 Lista.Items.Clear() Do Lista.Items.Add(i) i = i + 1 Loop While i <= 100 End Sub

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click Dim i As Integer i=1 Lista.Items.Clear() Do While i <= 100 Lista.Items.Add(i) i = i + 1 Loop End Sub Private Sub Lista_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lista.MouseClick txtIzabrano.Text = Lista.SelectedItem End Sub Private Sub btnPrebaci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrebaci.Click PadajucaLista.Items.Add(txtIzabrano.Text) End Sub Razlika je u liniji DO WHILE. Program treba da izgleda ovako:

Isti zadatak sa izlistavanjem brojeva od 1 do 100 sa poetka lekcije uradiemo samo to emo umesto ListBoxa koristiti TextBox. Reenje: Sa forme iskoristiemo dugme btnIzlistaj a postojeem

Private Sub Lista_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lista.MouseClick txtIzabrano.Text = Lista.SelectedItem End Sub Private Sub btnPrebaci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrebaci.Click PadajucaLista.Items.Add(txtIzabrano.Text) End Sub isto se dobija i sa kodom:

TextBox-u sa nazivom txtIzabrano promeniemo sledea svojstva:

Name - txtLista Multiline - True (Vie redova) ScrollBars - Vertical (Vertikalni kliza)

Nakon toga uneemo sledei kod: Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click Dim i As Integer i = 1 Do

txtLista.Text += i & vbNewLine i = i + 1 Loop While i <= 100 End Sub Napomena 1: Linija koda txtLista.Text += i & vbNewLine je u skraenom obliku isto to i txtLista.Text = txtLista.Text & i & vbNewLine Dakle, linija koja se pie kao: Rezultat = Rezultat + Broj1 moe skraeno da se napie i kao: Rezultat += Broj1 Isto pravilo vai i za ostale operacije (+, -, *, /) Napomena 2: Isti zadatk smo mogli da reimo korienjem rei Until umesto WHILE sa malom izmenom koda: Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click Dim i As Integer i = 1 Do txtLista.Text += i & vbNewLine i = i + 1 Loop Until i = 100 End Sub Zadatak: Uraditi nekoliko primera vezanih za petlje FOR i DO WHILE, i provebati upotrebu ListBox-a i ComboBox-a.

UCase (pretvara mala slova u velika) rez = UCase(String) Primer: rez = UCase("Nokia") daje rezultat rez="NOKIA" LCase (pretvara mala slova u velika) rez = LCase(String) Primer: rez = LCase("Nokia") daje rezultat rez="nokia" Mid - izdvaja n karaktera stringa poevi od pozicije m, gde je m ceo broj i m>0. Ako se izostavi parametar n onda izdvaja sve karaktere od pozicije m do kraja stringa. rez = Mid(String, m[, n]) Primer: rez = Mid("Nokia",2,2) daje rezultat rez="ok" Primer: rez = Mid("Nokia",2,4) daje rezultat rez="okia" Primer: rez = Mid("Nokia",2) daje rezultat rez="okia" Space (daje kao rezultat n praznih mesta) rez = Space(n) Primer: rez =Space(4) daje kao rezultat rez="

"

StrReverse (obre karaktere stringa) rez = StrReverse (String) Primer: rez = StrReverse("Nokia") daje kao rezultat rez="aikoN" A sad prelazimo na primere: Zadatak: Napraviti program koji e da sadri 4 dugmeta (Prvo dugme / Name - Desno, Text - Pomeri Desno),(Drugo dugme / Name - Levo, Text - Pomeri Levo), (Tree dugme / Name Gore, Text - Pomeri Gore), (etvrto dugme / Name - Dole, Text - Pomeri Dole) i labelu (Name - pokretnaLabela, Text - Pokretna Labela) i napisati kod kojim e se labela pomerati u zavisnosti od toga koje je dugme kliknuto. Reenje: Forma treba da ima ovakav izgled

Lekcija 07 - Primeri 2
U ovoj lekciji obradiemo funkcije koje rade sa nizovima znakova i uradiemo primere za do sad spomenute objekte. Funkcije koje rade sa nizovima znakova: Val (brojna vrednost stringa-pretvara string u broj) Len (daje duinu stringa)
rez = Len(String) Primer: rez = Len("Nokia") daje rezultat rez=5

Left (izdvaja n levih karaktera stringa)


rez = Left(String,n) Primer: rez = Left("Nokia",2) daje rezultat rez="No"

Right (izdvaja n desnih karaktera stringa)


rez = Right(String,n) Primer: rez = Right("Nokia",2) daje rezultat rez="ia"

A kod koji treba da se unese: Private Sub Gore_Click(ByVal sender As System.Object, ByVal e
"

LTrim (uklanja samo poetne prazne znakove stringa)


rez = LTrim(String) Primer: rez = LTrim(" Nokia ") daje rezultat rez="Nokia

As System.EventArgs) Handles Gore.Click pokretnaLabela.Top -= 10 End Sub

RTrim (uklanja samo krajnje prazne znakove stringa)


rez = RTrim(String) Primer: rez = RTrim(" Nokia ") daje rezultat rez=" Nokia"

Trim (uklanja poetne i krajnje prazne znakove stringa)


rez = Trim(String) Primer: rez = Trim(" Nokia ") daje rezultat rez="Nokia"

Private Sub Dole_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dole.Click pokretnaLabela.Top += 10 End Sub Private Sub Levo_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles Levo.Click pokretnaLabela.Left -= 10 End Sub Private Sub Desno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Desno.Click pokretnaLabela.Left += 10 End Sub Napomena: u zadatku su koriena svojstva objekta LEFT i TOP koja oznaavaju udaljenost objekta od gornje/leve ivice forme. NPR ukoliko elimo da postavimo neki objekat mesto udaljeno 100 jedinica od leve ivice forme to emo uraditi na sledei nain: Objekat.Left = 100 ukoliko treba da postavimo neki objekat na mesto udaljeno 100 jedinica od gornje ivice forme to emo uraditi na sledei nain: Objekat.Top = 100 a ukoliko treba da postavimo neki objekat na mesto udaljeno 100 jedinica i od gornje i od leve ivice forme to emo uraditi na sledei nain: Objekat.Left = 100 Objekat.Top = 100 Zadatak: Iskoristiti postojeu formu i labelu na njoj a ostale objekte obrisati (etri dugmeta) i dodati objekat Timer (svojsvto Name Tajmer, svojstvo Enabled - True, svojstvo Interval - 10). Napisati kod za objekat tajmer kojim e se labela pomerati udesno i kad doe do desne ivice forme da se vrati na levu ivicu forme (na poetak). Reenje: Private Sub Tajmer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tajmer.Tick pokretnaLabela.Left += 1 If pokretnaLabela.Left > Me.Width Then pokretnaLabela.Left = -pokretnaLabela.Width End Sub Objanjenje: Svojstvo WIDTH predstavlja irinu objekta. Ako leva ivica labele pree irinu forme onda se vraa na levu stranu ivice forme i ide u minus za irinu labele. :) Zadatak: Na postojeu formu dodati CheckBox (svojstvo Name Kretanje, svojstvo Text - Kretanje) i ubaciti kod kojim e se ukljuenjem CheckBox-a labela kretati a iskljuenjem prestati da se kree. Reenje: Private Sub Tajmer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tajmer.Tick pokretnaLabela.Left += 1 If pokretnaLabela.Left > Me.Width Then pokretnaLabela.Left = -pokretnaLabela.Width End Sub Zadatak: Na postojeu formu dodati TextBox (svojstvo Name txtBoja) i dugme (svojstvo Name - btnBoja, svojstvo Text Promeni Boju) i ubaciti kod kojim e se klikom na dugme menjati boja texta labele u zavisnosti od toga koja boja je upisana u

txtBoja. Ukoliko je upisano/promenie se boja u (crna - text labele menja se u crnu boju, crvena - text labele menja se u crvenu boju, plava - text labele menja se u plavu boju, zuta - text labele menja se u zutu boju, zelena - text labele menja se u zelenu boju, a ako nije upisano nita od navedenog boja texta promenie se u belu).

Reenje: Private Sub btnBoja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBoja.Click Select Case txtBoja.Text Case "crna" pokretnaLabela.ForeColor = Color.Black Case "crvena" pokretnaLabela.ForeColor = Color.Red Case "plava" pokretnaLabela.ForeColor = Color.Blue Case "zuta" pokretnaLabela.ForeColor = Color.Yellow Case "zelena" pokretnaLabela.ForeColor = Color.Green Case Else pokretnaLabela.ForeColor = Color.White End Select End Sub Zadatak: Na postojeu formu dodati pet RadioButton-a (Prvi / Name - bBela, svojstvo Text - Bela Boja), (Drugi / Name bCrvena, Text - Crvena Boja), (Trei / Name - bPlava, Text Plava Boja), (etvrti / Name - bZuta, Text - Zuta Boja), (Peta / Name - bZelena, Text - Zelena Boja), i napisati kod kojim e se izborom ogovarajue boje promenitiboja pozadine forme. Podesiti svojstvo Checked na True za prvi RadioButton (bBela).

Reenje: Private Sub bCrna_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.BackColor = Color.Black End Sub Private Sub bCrvena_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bCrvena.CheckedChanged Me.BackColor = Color.Red End Sub Private Sub bPlava_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bPlava.CheckedChanged Me.BackColor = Color.Blue End Sub Private Sub bZuta_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bZuta.CheckedChanged Me.BackColor = Color.Yellow End Sub Private Sub bZelena_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bZelena.CheckedChanged Me.BackColor = Color.Green End Sub Private Sub bBela_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bBela.CheckedChanged Me.BackColor = Color.White End Sub Objanjenje: Svjostvo ForeColor se odnosi na boju slova objekta a svojstvo BackColor se odnosi na pozadinsku boju objekta.

Moduli su elementi VB.Net-a i koriste se za smetanje promenljivih i funkcija koje se koriste u svim formama aplikacije. Modul dodajemo tako to u glavnom padajuem meniju izaberemo Project
> Add Module > Add

Zadatak: Na formu dodati dugme (btnPozovi, Text - Pozovi Funkciju), i dva TextBox-a (prvi / Name - txtBroj1), (drugi / Name - txtBroj2) i napisati kod kojim e se klikom na dugme izvriti funkcija sabiranja dva broja koja e biti smetena u modulu a rezultat e se prikazati u MsgBox-u u obliku "Zbir dva broja je: rezultat". Reenje: Ubaciemo modul kao to je prikazano na slici i u njega upisati kod: Public Function Zbir(ByVal Broj1 As Double, ByVal Broj2 As Double) As Double Zbir = Broj1 + Broj2 End Function A u kod forme dodaemo: Private Sub btnPozovi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPozovi.Click MsgBox("Zbir dva broja je: " & Zbir(txtBroj1.Text, txtBroj2.Text), MsgBoxStyle.Information, "Zbir brojeva") End Sub Ovako treba da izgleda zadatak:

Lekcija 08 - Funkcije, procedure i moduli


Funkcije Funkcije predstavljaju deo VB.Net paketa i koriste se kao olakanje u pisanju koda. Npr. ukoliko imamo aplikaciju koja vie puta koristi sabiranje dva broja to emo lake izvesti korienjem ve napisane funkcije koja sabira dva broja. Primer: Public Function Zbir(ByVal Broj1 As Double, ByVal Broj2 As Double) As Double Zbir = Broj1 + Broj2 End Function Funkcija vraa zbir dva uneta broja a poziva se na sledei nain: Rezultat = Zbir(prviBroj, drugiBroj) Moduli

Napomena: funkcije se esto koriste pri izraunavanju povrine, obima i drugih matematikih operacija. Dodatni zadatak: otkloniti greku u programu koja se pojavljuje ako nije unet broj u neki od TextBox-eva. Procedure Procedura predstavlja jedinicu VB.Net koda. Sastoji se iz naredbi za sprovoenje neke operacije ili izraunavanje neke vrednosti. Opti oblik procedure je: Public Sub Procedura() naredbe End Sub ili Private Sub Procedura() naredbe End Sub Ukoliko se procedura nalazi u kodu forme ako ima oblik Public moi e da se pozove sa bilo koje forme a ako ima oblik Private mogue ju je pozvati samo sa forme na kojoj se nalazi.

Zadatak: Iskoristiti formu iz prethodnog zadatka i promeniti joj svojstva (Name - frmGlavna, Text - Glavna Forma). Nakon toga napisati proceduru tipa Public sa nazivom Boje u kojoj emo postaviti petlju IF koja e da smenjuje plavu i zelenu boju pozadine forme. Procedura e da se poziva prevlaenjem mia preko forme a prilikom otvaranja aplikacije boja pozadine forme e se promeniti u plavu. Reenje: Public Sub Boje() If Me.BackColor = Color.Blue Then Me.BackColor = Color.Green ElseIf Me.BackColor = Color.Green Then Me.BackColor = Color.Blue End If End Sub
Private Sub frmGlavna_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Assembly name je naziv aplikacije a Startup form je forma koja se prva prikazuje prilikom otvaranja aplikacije. Na treem koraku izabraemo Publish, u Publih Location folder uneemo adresu u koju zelimo da exportujemo projekat i kliknuti na dugme Publish Now.

Me.BackColor = Color.Blue End Sub


Private Sub frmGlavna_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles

Me.MouseMove Call Boje() End Sub Zadatak: Samostalno provebati upotrebu funkcija, procedura i modula.

Lekcija 09 - Publikovanje aplikacije


U poslednjoj lekciji nauiemo kako eksportovati nau aplikaciju i pripremiti je za izvravanje. U glavnom padajuem meniju izabraemo Project > Naziv Aplikacije Properties... Pripremljena aplikacija se nalazi u izabranom folderu a mi ovim zavravamo na mali kurs VB.Net 2008. Sreno... Korisni linkovi / pomo, tutorials: Dosta znanja iz oblasti VB.Net-a moete pronai na forumu Elite Security a ako ni tu ba ne moete da pronaete kod koji vam je potreban, tu je uvek staro dobro Guglanje :) Napomena: Obzirom da je ovaj mali kurs pisan kao kurs za poetnike, mnoge stvari su izostavljene, smatramo da je za kurs ovakvog tipa obraena odgovarajua materija Izvinjavamo se zbog eventualnih greaka, ukoliko ih uoite molimo da nam javite kako bismo ih ispravili Kurs je besplatan za korienje, svako kopiranje ili objava na bilo koji nain zabranjena je bez prethodne dozvole autora. Copyright xMedia, oktobar 2008. Na prvom koraku pripreme aplikacije Application popuniemo i podesiemo parametre kao na slici:

You might also like