Download - Visual Basic .NET Lekcije
Visual Basic .NET LekcijeLekcija 01 - Pokretanje novog projekta i okruženjePre svega, dobrodošli na kurs programiranja u VB.Net
2008 okruženju. Da počnemo:
Prvo što ćete da dobijete na ekranu je:
Da bi pokrenuli novi projekat potrebno je da u padajućem 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 upišemo željeni
radni naziv aplikacije. Našoj aplikaciji daćemo radni naziv Prvi
Projekat.
Nakon klika na dugme OK, pokrenuli smo naš prvi projekat i dobili
radno okruženje. Radno okruženje se sastoji iz nekoliko delova:
Toolbox (levo) - Objekti
Centralni radni panel (sredina) - Radna površina / dizajn i
programiranje
Solution explorer (desno) - Projekti, forme...
Properties (desno) - Svojstva objekata
Error list (dole) - Lista mogućih grešaka
Napomena: ukoliko na levoj strani nije aktivan prozor Toolbox
aktiviraćemo ga tako što ćemo prevući mišem preko kartice toolbox
i aktivirati klikom na dugme Auto Hide koje se nalazi pored
dugmeta Close za zatvaranje Toolbox-a.
Sledeće što ćemo uraditi je:
Dodaćemo objekat Button (dugme za izvršavanje
komandi)
Dodaćemo objekat Label (naslov)
Izmenićemo svojstva naše forme
Oba objekta ćemo dobiti dvosrtukim klikom na svaki od njih u
Toolbox-u. Dobili smo naše prve objekte Button1 i Label1,
potrebno je da ih razmestimo po formi.
Nakon razmeštanja, našim objektima promenićemo određena
svojstva:
Dodelićemo im nazive tako što ćemo im u prozoru
Properties promeniti svojstvo (Name). Za dugme umesto
nazivaButton1 unećemo naziv Dugme a za labelu
umesto naziva Label1 unećemo naziv Labela
Promenićemo tekst ispisan na dugmetu i labeli tako što
ćemo im proeniti svojstvo Text. Za dugme umesto
tekstaButton1 unećemo text Dugme a za labelu umesto
teksta Label1 unećemo tekst Labela.
Izmenićemo svojstva naše 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)
Ovim smo našim objektima i formi dodelili svojstva i naša prva
aplikacija je spremna za rad! Aplikaciju pokrećemo tako što ćemo u
padajućem meniju izabrati Debug > Start Debugging (F5).
Naša prva
aplikacija treba da
izgleda ovako:
Zatvorićemo našu
aplikaciju, i naš
projekat a na
pitanju
izabraćemo Save i
u sledećem
prozoru nećemo
ništa menjati i
kliknuti opet
na Save.
Lekcija 02 - Prvi kodNakon ponovnog
pokretanja VB.Net-a 2008
dobili smo Start Page i da
bi pokrenuli naš započeti
projekat u prozoru Recent
Projects izabraćemo
stavku Prvi Projekat.
Imamo pripremljenu prvu
aplikaciju, vreme je da
zadamo našim objektima
određene poslove.
Da bi dugmetu komo smo za sad dali naziv Dugme dodelili
određeni posao potrebno je da na njega kliknemo dva puta. Dobili
smo prozor za uređivanje 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 između linija
Public Class Aplikacija I End Class
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
označavaju početak i kraj koda za naše dugme.
Da bi dugmetu dodelili određeni posao potrebno je ubacimo kod
između ove dve linije.
Zadatak: Klikom na dugme promeniti tekst ispisan u labeli
Rešenje: Ubacićemo kod kojim će se klikom na dugme u labeli
pojaviti tekst "promena teksta u labeli". Kod za izvršavanje ovakve
komande glasi:
Labela.Text = "promena teksta u labeli"
dakle, ceo kod naše Aplikacije glasiće:
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 kliknućemo na karticu Form1.vb
[Design]
Da bi sprobali funkionalnost naše aplikacije pritisnućemo taster F5.
Zadatak: kreirati novo dugme koje će da izvrši novu promenu
teksta u labeli u "nova promena".
Rešenje:
u toolboxu dvostrukim klikom na objekat Button
ubacićemo novo dugme na formu. Pomerićemo ga ispod
prvog dugmeta, promenićemo mu svojstvo Name u
drugoDugme i svojstvo Text u "Drugo Dugme" i malo
ćamo mu povećati dimenzije da bi text bio u potpunosti
ispisan.
Dvostrukim klikom prećićemo na kod aplikacije i na kod
našeg drugog dugmeta unećemo sledeću liniju:
Labela.Text = "nova promena"
ceo kod aplikacije treba da izgleda ovako:
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
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 naše aplikacije pritisnućemo taster F5.
Naša aplikacija na kraju druge lekcije treba da izgleda ovako:
Lekcija 03 - Ostali osnovni objektiPodsetnik: u prethodnim lekcijama smo se upoznali
saobjektima Button i Label.
U lekciji 3 nastavljamo sa upoznavanjem sa osnovnim objektima. U
ovoj lekciji obradićemo sledeće objekte (ubacićemo svaki od njih
na formu i rasporediti ih kao na slici ispod):
TextBox (unos podataka)
PictureBox (slika)
Timer (izvršavanje određenog koda u zadatom
vremenskom periodu)
CheckBox (polje za potvrdu)
RadioButton (dugme za izbor opcija)
ListBox (lista podataka)
ComboBox (lista podataka sa padajućom listom)
TextBox - Osnovna namena: unos podataka radi dalje obrade
Dozvoljava unos: svih vrsta karaktera (brojeve, slova i specijalne
karaktere)
PictureBox - Osnovna namena: prikaz slike
Može da primi: tpove slika (*.gif, *.jpg, *.jpeg, *.bmp, *.wmf, *.png)
Napomena: ubacivanje slike vrši se tako što u polju Image u
svojstvima slike kliknemo na dugme označeno sa tri tačke.
Zatim u prozoru Select Resource izaberemo Local Resource,
kliknemo na dugme Import, pronađemo sliku i kliknemo na
dugme OK.
Timer - Osnovna namena: izvršavanje određenog koda u zadatom
vremenskom periodu
CheckBox - Osnovna namena: polje za potvrdu - potvrđivanje
određene radnje ili ispitivanje da li će neki zadatak da se obavi
Napomena: ima dva stanja - svojstvo Checked (True i False) - da
li će određeno 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 može izabrati više opcija odjednom a kod RadioButton-a
je moguć izbor samo jedne od opcija.
ListBox - Osnovna namena: lista podataka
ComboBox - Osnovna namena: lista podataka sa padajućom
listom… Za sad toliko...u sledećoj lekciji proćićemo kroz primere
za svaki od navedenih objekata.
Lekcija 04 - Primeri i tipovi podatakaPre nego što počnemo obradićemo 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 mogućnost kreiranja virtuelnih objekata koji imaju za
clij privremeno smeštanje podataka u memoriji. Virtuelni objekti se
kreiraju kodom:
Dim ceoBroj as Integer
Dim drugiBroj as Double
Dim nekaRec as String
Dim onOff as Boolean
Matematičke operacije koje koristimo u VB.Net-u su:
Promena tipa podataka (Cast)
Izračunavanje izraza u zagradama (izraz)
Stepenovanje (^)
Množenje i deljenje (*, /)
Celobrojno deljenje (\)
Ostatak pri deljenju (mod)
Sabiranje i oduzimanje
Prioritet u izvršavanju 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.
Rešenje:
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
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
izračunati zbir dva broja unešena u txtBroj1 i txtBroj2 a rešenje
ispisati u lblResenje. Rešenje:
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
Objašnjenje: u kodu
je korisćena kodna
reč Val koja daje
brojnu vrednost
unešenog broja
uTextBox jer je
svojstvo Text
tipaString a da smo u
kodu ostavili liniju koja
bi glasila:
lblResenje.Text
= txtBroj1.Text
+ txtBroj2.Text
rešenje ukucana dva broja npr. 12 i 12 bilo bi 1212. U primeru sa
virtuelnim objektima dobili smo željeno rešenje bez ubacivanja
reči 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 - Rešenja), (Druga
labela / svojstvo Name - lblRezSabiranja, svojstvo Text -Rezultat
sabiranja), (Treća labela / svojstvo Name - lblRezOduzimanja,
svojstvo Text - Rezultat oduzimanja), (Četvrta labela / svojstvo
Name - lblRezMnozenja, svojstvo Text - Rezultat množenja), (Peta
labela / svojstvo Name - lblRezDeljenja, svojstvo Text - Rezultat
Deljenja) i napisati kod kojim ćemo klikom na dugme sabrati,
oduzeti, pomnožiti, izdeliti dva broja unešena u txtBroj1 i txtBroj2 a
rešenja ispisati u labele tako što će za svaku operaciju ispred
rešenja biti ubačen odgovarajući tekst "Rezultat sabiranja je:",
"Rezultat oduzimanja je:", "Rezultat množenja je:", "Rezultat
deljenja je:".
Rešenje:
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 rešenje 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.
Rešenje:
Ovaj zadatak uradićemo tako što ćemo u događajima za objekat
txtUnosTeksta izabrati događaj TextChanged i uneti sledeći 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 unošenjem teksta u TextBox identičan 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 prevlačenjem miša preko
labele lblPrevuci u labeli lblNaslov ispisati "Događaj MOUSE
MOVE...Stisni dugme Reset." a klikom na dugme će se u
labeli lblNaslov ispisati "Naslov".
Rešenje: Ovaj zadatak uradićemo tako što ćemo u događajima za
objekat lblPredji izabrati događaj MouseMove i uneti sledeći kod
za njega:
Private Sub lblPredji_MouseMove(ByVal sender As
Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles
lblPredji.MouseMove
lblNaslov.Text = "Događaj MOUSE MOVE...Stisni
dugme Reset."
End Sub
a za dugme uneti sledeći kod:
Private Sub btnReset_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles btnReset.Click
lblNaslov.Text = "Naslov"
End Sub
Radi lakšeg razumevanja i vežbe ostale događaje 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 povećavati za 1 a pritiskom na
dugme Stop zaustaviti brojač a u labeli će se prikazivati vreme.
Rešenje: 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
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
Objašnjenje: Svojstvo Enabled (True - uključen, False - isključen
Timer). Svojstvo Interval (vrednost 1000 označava 1 sekundu)
Napomena: skraćenice lbl, btn, txt, tim... koriste se radi lakšeg
snalaženja u kodu aplikacije i prepoznavanju objekata.
Lekcija 05 - Petlja IF i naredba SELECT CASEPonekad ćemo imati porebu da preuzmemu kontrolu nad
izvršavanjem koda ili da ispitamo neki završen deo koda i na
osnovu toga da odredimo koji će deo koda dalje da se izvršava. Za
to koristimo petlju IF. Opšti oblik petlje IF je:
IF upit1 AND upit2 = upit3 THEN
upit4
ELSEIF upit1 AND upit2 < upit3 THEN
upit5
ELSEIF ... THEN
ELSE ...
ENDIF
Primećujemo da smo prvi put ubacili operatore poređenja (=, <).
Oni se najčešće koriste prilikom kontrole toka. Operatori koji se
koriste u VB.Net-u su:
> Veće < Manje
<= Manje ili jednako >= Veće ili jednako
<> Različito
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 veći ili manji od 100 i ukoliko je manji u MsgBox-
u dobićemo poruku "Broj je manji od 100", ukoliko je veći dobićemo
poruku "Broj je veći od 100", ukoliko je broj jednak 100 dobićemo
poruku "Broj je jednak 100" a ukoliko nije unet ni jedan broj
dobićemo poruku "Niste uneli ni jedan broj!".
Rešenje:
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 veći 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 veći od 100 i vratio bi
grešku.
Rad sa MsgBox-om:
Koristili smo liniju
MsgBox("Niste uneli ni jedan broj!")
koja prikazuje poruku samo sa unetim textom. Poruka se može
dalje oblikovati tako što ćemo joj dodeliti simboličku ikonicu, druge
dugmiće i naslov. Simboličke 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 dugmići 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)
Simboličke ikonice i drugi dugmići mogu da se koriste
kombinovanjem jednih i drugih tako što unosimo kod tipa:
MsgBox("Niste uneli ni jedan
broj!", MsgBoxStyle.OkOnly+MsgBoxStyle.Critical)
Uradićemo primer za korišćenje dugmića YES i NO.
Zadatak: Uzećemo formu iz prethodnog zadatka i dodelićemo joj
svojstvo Name - frmPrvaForma, a pored nje ubacićemo još jednu
formu i njoj dodeliti svojstvo Name - frmDrugaForma, dodaćemo
još jedno dugme (svojstvo Name - btnPrelazak, svojstvo Text -
Pređi na drugu formu) i dodati kod kojim ćemo klikom na dugme
dobiti poruku koja će postaviti pitanje "Da li želite da pređete na
drugu formu?" i koja će klikom na dugme YES preći na drugu
formu a klikom na dugme NO poništiti pitanje.
Rešenje: Nova forma se ubacuje tako što ćemo u glavnom
padajućem meniju izabrati: Project > Add Windows Form... U
prozoru Templates već je izabrana Windows Form, kliknućemo
samo na ADD. Nakon toga promenićemo svojstvo druge forme
Name - frmDrugaForma i uneti sledeći 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 pređeta na drugu
formu?", MsgBoxStyle.Question + MsgBoxStyle.YesNo,
"Pitanje")
If Poruka = MsgBoxResult.Yes Then
frmDrugaForma.Show()
End If
End Sub
Napomena: u primeru je korišćen i naslov poruke koji se unosi
posle simboličkih ikonica i dugmića
Poruka = MsgBox("Da li želite da pređeta na drugu
formu?", MsgBoxStyle.Question +
MsgBoxStyle.YesNo, "Pitanje")
Naredba SELECT CASE
Gornji zadatak (provera da li je broj manji ili veći od 100) može da
se izvede i na drugi način korišćenjem 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 veći od
100.",MsgBoxStyle.Information)
Case 100
MsgBox("Broj je jednak od
100.",MsgBoxStyle.Information)
End Select
End Sub
Uradićemo 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
pojedinačno, odvojeno i da li su uopšte čekirane.
Rešenje:
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)
ElseIf Opcija1.Checked = False And
Opcija2.Checked = True Then
MsgBox("Čekirana je Opcija 2.",
MsgBoxStyle.Information)
End If
End Sub
Objašnjenje: U zadatku korišćena je relacija AND, u VB.Net-u
koristićemo 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 vežbu isti zadatak uraditi sa RadioButton-om i
uraditi nekoliko primera za AND, OR i NOT.
Lekcija 06 - Petlje FOR i DO WHILE UNTILOpšti 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 lakšeg
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."
Rešenje:
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
Zadatak: Koristićemo 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." Rešenje:
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 korišćena linija Lista.Items.Clear() koja pre
izvršenja FOR petlje briše sve članove liste jer bez nje svakim
klikom na dugme na postojeću listu dodao bi se novi niz brojeva.
Zadatak: Koristićemo 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." Rešenje:
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)
Next
MsgBox("Brojevi su izlistani.",
MsgBoxStyle.Information)
End Sub
Petlja može da se prekine linijom Exit For u određenom 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
Objašnjenje: Iako je postaljena petlja koja izlistava parne brojeve
od 1 do 1000 prekidom petlje izlistaće 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 izvršiti jer se
provera uslova za izlazak iz petlje vrši na dnu petlje.
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 izvršiti.
Uradićemo dva primera vezana za petlju Do While Until.
Zadatak: Na postojeću 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 neči član
liste taj član prikazati u txtIzabrano a klikom na dugme btnPrebaci
dodavati izabrani brojevi iz Liste u Padajucu Listu.
Rešenje:
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 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:
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 početka lekcije
uradićemo samo što ćemo umesto ListBoxa koristiti TextBox.
Rešenje: Sa forme iskoristićemo dugme btnIzlistaj a postojećem
TextBox-u sa nazivom txtIzabrano promenićemo sledeća svojstva:
Name - txtLista
Multiline - True (Više redova)
ScrollBars - Vertical (Vertikalni klizač)
Nakon toga unećemo sledeći 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 skraćenom obliku isto što i
txtLista.Text = txtLista.Text & i & vbNewLine
Dakle, linija koja se piše kao:
Rezultat = Rezultat + Broj1
može skraćeno da se napiše i kao:
Rezultat += Broj1
Isto pravilo važi i za ostale operacije (+, -, *, /)
Napomena 2: Isti zadatk smo mogli da rešimo korišćenjem
reči 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 provežbati upotrebu ListBox-a i ComboBox-a.
Lekcija 07 - Primeri 2U ovoj lekciji obradićemo funkcije koje rade sa nizovima znakova i
uradićemo primere za do sad spomenute objekte.
Funkcije koje rade sa nizovima znakova:
Val (brojna vrednost stringa-pretvara string u broj)
Len (daje dužinu 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"
LTrim (uklanja samo početne prazne znakove stringa)
rez = LTrim(String)
Primer: rez = LTrim(" Nokia ") daje rezultat
rez="Nokia "
RTrim (uklanja samo krajnje prazne znakove stringa)
rez = RTrim(String)
Primer: rez = RTrim(" Nokia ") daje rezultat rez="
Nokia"
Trim (uklanja početne i krajnje prazne znakove stringa)
rez = Trim(String)
Primer: rez = Trim(" Nokia ") daje rezultat
rez="Nokia"
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 počevši 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 (obrće 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 sadrži 4 dugmeta (Prvo
dugme / Name - Desno, Text - Pomeri Desno),(Drugo dugme /
Name - Levo, Text - Pomeri Levo), (Treće 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.
Rešenje: Forma treba da ima ovakav izgled
A kod koji treba da se unese:
Private Sub Gore_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Gore.Click
pokretnaLabela.Top -= 10
End Sub
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 korišćena svojstva
objekta LEFT i TOP koja označavaju 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 sledeći način:
Objekat.Left = 100
ukoliko treba da postavimo neki objekat na mesto udaljeno 100
jedinica od gornje ivice forme to ćemo uraditi na sledeći način:
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 sledeći
način:
Objekat.Left = 100
Objekat.Top = 100
Zadatak: Iskoristiti postojeću 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 dođe do desne ivice forme da se vrati na levu ivicu forme (na
početak).
Rešenje:
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
Objašnjenje: Svojstvo WIDTH predstavlja širinu objekta. Ako leva
ivica labele pređe širinu forme onda se vraća na levu stranu ivice
forme i ide u minus za širinu labele. :)
Zadatak: Na postojeću formu dodati CheckBox (svojstvo Name -
Kretanje, svojstvo Text - Kretanje) i ubaciti kod kojim će se
uključenjem CheckBox-a labela kretati a isključenjem prestati da
se kreće.
Rešenje:
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 postojeću 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/promeniće 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 ništa od navedenog boja texta promeniće se u belu).
Rešenje:
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 postojeću formu dodati pet RadioButton-a (Prvi /
Name - bBela, svojstvo Text - Bela Boja), (Drugi / Name -
bCrvena, Text - Crvena Boja), (Treći / Name - bPlava, Text -
Plava Boja), (Četvrti / Name - bZuta, Text - Zuta Boja), (Peta /
Name - bZelena, Text - Zelena Boja), i napisati kod kojim će se
izborom ogovarajuće boje promenitiboja pozadine forme. Podesiti
svojstvo Checked na True za prvi RadioButton (bBela).
Rešenje:
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
Objašnjenje: Svjostvo ForeColor se odnosi na boju slova objekta
a svojstvo BackColor se odnosi na pozadinsku boju objekta.
Lekcija 08 - Funkcije, procedure i moduliFunkcije
Funkcije predstavljaju deo VB.Net paketa i koriste se kao olakšanje
u pisanju koda. Npr. ukoliko imamo aplikaciju koja više puta koristi
sabiranje dva broja to ćemo lakše izvesti korišćenjem 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 vraća zbir dva
uneta broja a poziva se
na sledeći način:
Rezultat =
Zbir(prviBroj,
drugiBroj)
Moduli
Moduli su elementi
VB.Net-a i koriste se za smeštanje promenljivih i funkcija koje se
koriste u svim formama aplikacije. Modul dodajemo tako što u
glavnom padajućem 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
izvršiti funkcija sabiranja dva broja koja će biti smeštena u modulu
a rezultat će se prikazati u MsgBox-u u obliku "Zbir dva broja je:
rezultat".
Rešenje: Ubacićemo 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 dodaćemo:
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:
Napomena: funkcije se često koriste pri izračunavanju površine,
obima i drugih matematičkih operacija.
Dodatni zadatak: otkloniti grešku 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 sprovođenje neke operacije ili izračunavanje neke vrednosti.
Opšti 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
moći će da se pozove sa bilo koje forme a ako ima oblik Private
moguće 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 prevlačenjem miša preko forme
a prilikom otvaranja aplikacije boja pozadine forme će se promeniti
u plavu.
Rešenje:
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
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 provežbati upotrebu funkcija, procedura i
modula.
Lekcija 09 - Publikovanje aplikacijeU poslednjoj lekciji naučićemo kako eksportovati našu aplikaciju i
pripremiti je za izvršavanje.
U glavnom padajućem meniju izabraćemo Project > Naziv
Aplikacije Properties...
Na prvom koraku pripreme aplikacije Application popunićemo i
podesićemo parametre kao na slici:
Assembly name je naziv aplikacije a Startup form je forma koja
se prva prikazuje prilikom otvaranja aplikacije.
Na trećem koraku izabraćemo Publish, u Publih Location folder
unećemo adresu u koju zelimo da exportujemo projekat i kliknuti
na dugme Publish Now.
Pripremljena aplikacija se nalazi u izabranom folderu a mi ovim
završavamo naš mali kurs VB.Net 2008. Srećno...
Korisni linkovi / pomoć, tutorials:
Dosta znanja iz oblasti VB.Net-a možete pronaći na forumu Elite
Security a ako ni tu baš ne možete da pronađete kod koji vam je
potreban, tu je uvek staro dobro Guglanje :)
Napomena: Obzirom da je ovaj mali kurs pisan kao kurs za početnike,
mnoge stvari su izostavljene, smatramo da je za kurs ovakvog tipa obrađena odgovarajuća materija
Izvinjavamo se zbog eventualnih grešaka, ukoliko ih uočite molimo da nam javite kako bismo ih ispravili
Kurs je besplatan za korišćenje, svako kopiranje ili objava na bilo koji način zabranjena je bez prethodne dozvole autora. Copyright xMedia, oktobar 2008.