Upload
igor
View
48
Download
11
Embed Size (px)
DESCRIPTION
Naučite osnove programiarnja uz Visual Basic 6.0
Citation preview
Laboratorijske vjebe: Osnove programiranja (Razvoj aplikacija u Microsoft Visual Basic 6)Autor: Mr Bogdan Brki
BANJA LUKA COLLEGEBanja Luka
2010/2011
Sadraj
MODUL 1: Uvod u razvojno okruenje Visual Basic 6MODUL 2: KontroleMODUL 3: Kontrole svojstva, metode i dogaajiMODUL 4: MsgBox, InputBox, CommonDialog dijaloziMODUL 5: Forme, MDI, menijiMODUL 6: Tipovi podataka, promjenljive, nizovi i konstanteMODUL 7: Kontrola toka programaMODUL 8: Procedure i funkcijeMODUL 9: Forme, kontrole i kodiranje napredne tehnikeMODUL 10: Otklanjanje greaka i rukovanje grekamaMODUL 11: PonavljanjeMODUL 12: Povezivanje sa bazama podataka DAOMODUL 13: Povezivanje sa bazama podataka ADOMODUL 14: Kreiranje izvjetaja Data ReportMODUL 15: Kreiranje izvjetaja Crystal Reports
MODUL 1: Uvod u razvojno okruenje Visual Basic 6 Visual Basic je Windows integrisano vizuelno razvojno okruenje
Visual Basic je programski jezik
Visual Basic olakava osnovne zadatke u kreiranju Windows aplikacije
Kreiranje formi, dodavanje kontrola na formu i pisanje koda deava se u prijateljskom okruenju
Osnovne karakteristike Visual Basic Programa Visual Basic aplikacije odgovaraju na dogaaje Korisnik kontrolie aplikaciju
Svaki klik mia ili pritisak tipke na tastaturi rezultuje pokretanjem nekog dogaaja
Visual Basic je objektno orjentisan aplikaciju je mogue podijeliti u dijelove
pojedine dijelove je mogue nezavisno razvijati i testirati
Visual Basic je kompletan razvojni sistem za Windows aplikacije
Visual Basic aplikacije izgledaju i ponaaju se kao i svi ostali Windows programi
Visual Basic je skalabilan moe se proirivati ActiveX kontrolama i DLL bibliotekama
mogue je kreirati sopstvene ActiveX kontrole i DLL biblioteke ili ih preuzeti od drugih proizvoaa
Istorija Visual Basic-a Visual Basic 1.0 (1991) Visual Basic 2.0 (1992)
Visual Basic 3.0 (1993)
Visual Basic 4.0 (1995)
Visual Basic 5.0 (1997)
Visual Basic 6.0 (1998-podrka trajala do sredine 2005.)
Visual Basic .NET (2002.-)Derivati Visual Basic-a Visual Basic for Applications (VBA) VBScript StarOffice Basic Gambas
Razvoj Visual Basic aplikacije
Dizajniranje korisnikog interfejsa
Osnovna komponenta Visual Basic aplikacije je forma
Forma je prozor koji sadri objekte kontrole
Kontrole karakteriu: svojstva, dogaaji i metode Svojstva daju informacije o trenutnom stanju kontrole
Primjeri svojstava su: visina, irina, pozicija forme na ekranu, pozicija kontrole na formi, boja pozadine, ....
Dogaaji pruaju mogunost programeru da kontrolie tok programa
Primjeri: klik na dugme, pritisak tipke Enter u textbox-u, odabir vrijednosti sa padajue liste, pritisak na RadioButton ili CheckBox ...
Metode kontrola su procedure koje na unaprijed definisan nain mijenjaju svojstva kontrole
Mogu da primaju parametre
Primjer: pomjeranje dugmeta, brisanje svih vrijednosti iz padajue liste, ...
Pokretanjem Visual Basic integrisanog razvojnog okruenja uoavamo da se ono sastoji iz sledeih segmenata:
Glavni meni
Prozor forme
Kutija sa alatima (TOOLBOX)
Prozor projekata i komponenti projekta (PROJECT EXPLORER)
Prozor sa svojstvima formi i komponenti (PROPERTIES WINDOW)
Prikaz forme kako bi trebala izgledati kada se pokrene aplikacija (FORM LAYOUT WINDOW)
Trake sa alatima (TOOLBARS) sadre ikone koje omoguavaju brzo pozivanje opcija koje se nalaze na glavnom meniju
Najvaniji toolbar je Standard toolbar i sadri opcije (grafika prezentacija za svaku opciju je ikona) za:kreiranje novog projekta,
dodavanje nove forme,
meni editor,
otvaranje postojeeg projekta,
snimanje projekta i formi,
Cut, Copy, Paste, Find,
Undo, Redo,
pokretanje pauziranje i zaustavljanje izvoenja aplikacije,
prikazivanje Project Explorer-a,
prikazivanje Properties Window-a,
prikazivanje Toolbox-a,
prikazivanje Object Browser-a,
prikaz koordinata trenutno selektovane kontrole,
prikaz visine i irine trenutno selektovane koordinate ...
Dizajn korisnikog interfejsa podrazumijeva:postavljanje kontrola na formu
pozicioniranje kontrola na formi
promjenu svojstava kontrola
kreiranje sistema menija
Pisanje koda koji odgovara na dogaaje
Ukoliko ne bi postojali dogaaji program bi se linearno izvravao od poetka do kraja bez mogunosti interakcije sa korisnikom.
Dogaaji su unaprijed definisane procedure za svaku kontrolu ili formu.
Programer pie kod za dogaaj i time odreuje dalji tok izvravanja programa. Ipak, najee je korisnik taj koji izaziva pokretanje dogaaja.
Nije obavezno obraditi sve dogaaje. Neobraeni dogaaji ne proizvode nikakvu akciju.
Kod napisan za kontrolu forme egzistira kao dio same forme. Ako se forma koristi u drugoj aplikaciji svi dogaaji pisani za kontrole te forme e biti prisutni u toj aplikaciji.
Akcije korisnika koje proizvode dogaaje su:pritisak dugmeta na tastaturi,
pomjeranje mia,
pritisak dugmeta na miu (klik ili dvoklik)
Akcije korisnika proizvode vie dogaaja. Npr. klik mia na dugme moe da proizvede sledee dogaaje:MouseDown na pritisnutom dugmetu,
LostFocus na prethodno fokusiranoj kontroli,
GotFocus na pritisnutom dugmetu,
Click na pritisnutom dugmetu i
MouseUp na pritisnutom dugmetu
Programer u zavsinosti od toga kako eli da se izvrava njegova aplikacija obraje jedan ili vie dogaaja.
Kreiranje i pozivanje ostalih procedura
Pored koda koji obrauje dogaaje forme i dogaaje kontrola mogue je pisati i samostalan kod u obliku javnih modula.
Ovakvi moduli su sastavni dio Visual Basic projekta.
Kod ovakvih modula je dostupan u cijeloj aplikaciji.
Primjeri:
kod za irilino/latinino konvertovanje rijei,
kod za konvertovanje iz jednog brojnog sistema u drugi,
kod koji implementira poslovnu logiku aplikacije (kod za obraun poreza i doprinosa na lini dohodak koristi se i na formama i na tampama) ....
Testiranje i otklanjanje greaka
Greke u kodu mogu biti sintaksne ili logike.
Greke mogu da se pojave i usled pogrenog unosa podataka od strane korisnika (obraditi ulazne podatke).
Greke mogu da nastanu usled normalnih ili vanrednih promjena u radnom okruenju.
Primjeri:
aplikacija predvia da se arhiviranje nekih podataka vri iskljuivo na D: particiju diska ta ako sistem ima samo jednu particiju ili ako je D: drajv neki optiki medij ili ako korisnik nema pravo pristupa D: drajvu u svom radnom okruenju,
aplikacija se povezuje na bazu podataka koja je definisana parametrima unutar samog okruenja, pomou imena hosta i naziva baze podataka, ...
Ovakve greke treba predvidjeti, obraditi ih unutar koda i korisniku dati poruku o greci i uputiti ga na mogue rjeenje problema.
Kreiranje izvrne verzije programa
Kreiranjem projekta kreiraju se razliiti fajlovi. Ukoliko je projekat tipa Standard EXE kreiranjem projekta nastae sledei fajlovi:
VBP fajl koji sadri sve podatke o projektu (tip projekta, koje sve forme se nalaze u sastavu projekta, koja forma se prva otvara kada se pokrene aplikacija, kako e se zvati izvrni program, podaci o verziji programa, .....)
FRM fajl(ove) koji sadri podatke o svim kontrolama na formi, sva njihova svojstva kao i kod svih obraenih dogaaja
BAS fajl(ove) koji sadre ostali VB kod
Kreiranje izvrnog koda odnosno nae aplikacije podrazumijeva kompajliranje svih modula aplikacije i povezivanje objektnih fajlova u exe izvrni program.
Za izvravanje ovako kreiranih aplikacija neophodno je da korisnik na svom raunaru ima izvrni modul MSVBVM60.DLL. U njemu se nalazi jezgro koje ine osnovne klase, funkcije i procedure. Rezultat ovakvog pristupa je da se u exe verziji koja, u zavisnosti od namjene aplikacije, moe biti veoma male veliine nalazi kompajlirani kod nastao kreiranjem korisnikog interfejsa i pisanjem koda od strane korisnika. Sve ostalo to je potrebno za izvravanje aplikacije nalazi se u MSVBVM60.DLL fajlu.
VJEBE: Uvod u razvojno okruenje Visual Basic 6
Cilj vjebe
Uponzavanje studenata sa kreiranjem jednostavnih Standard EXE aplikacija u integrisanom razvojnom okruenju Visual Basic 6.
Tok vjebi
kreiranje projektapostavljanje kontrola na formu podeavanje svojstva kontrola
obrada dogaaja kontrola
testiranje i otklanjanje greaka
kreiranje izvrne aplikacijeVJEBA 1: Kreirati jednostavnu aplikaciju koja na glavnoj formi sadri jednu Label i jednu CommandButton kontrolu. Obraditi dogaaj Click dugmeta na nain da pritisak miem na dugme prouzrokuje da svojstvo Caption labele dobije vrijednost Hello World !!!
UPUTSTVO: Otvoriti novi projekat (FileNew ProjectStandard EXE).
U prozoru sa kontrolama kliknite na ikonu za dodavanje labele i prevucite odreeno podruje na formi da bi ste postavili Label kontrolu.
Kliknite na labelu i u Properties prozoru promijenite svojstvo Caption tako to ete obrisati tekst Label1.
Na isti nain dodajte i jednu CommandButton kontrolu . Selektujte kontrolu Command1 i u Properties prozoru promijenite Caption svojstvo dugmeta u Popuni labelu.Snimite projekat i formu pritiskom na ikonu koja se nalazi na standardnom Toolbar-u ili odabirom opcije FileSave Project. Visual Basic okruenje e Vas pitati za naziv forme i projekta. Prihvatite Project1 i Form1.Testirajte program tako to ete pritisnuti ikonu ili odabirom opcije Runstart ili pritiskom na tipku F5 na tastaturi. Jednostavna aplikacija koju smo napravili bie pokrenuta. Pritisnemo li dugme sa natpisom Popuni labelu nita se nee desiti. Prekinimo izvravanje programa i dodajmo kod za obradu Click dogaaja dugmeta.
Da bi smo napisali kod za obradu Click dogaaja dugmeta u razvojnom okruenju Visual Basic-a 6 pritisnimo dvoklikom na dugme koje smo prethodno postavili na formu. Otvorie se prozor sa zaglavljem i zavretkom procedure Command1_Click. Dopunite kod kao na sledeoj slici i ponovo pokrenite program.
Private Sub Command1_Click()
Label1.Caption = "Hello World !!!"
End Sub
MODUL 2: KontroleKontrole koje se mogu vidjeti u prozoru sa alatima (Toolbox) su, idui odozgo na dole, sledee:
Pointer (nije kontrola koja se moe postaviti na formu ve omoguava mod selekcije postavljenih kontrola na formi),
PictureBox,
Label,
TextBox,
Frame,
CommandButton,
CheckBox,
OptionButton,
ComboBox,
ListBox,
HScrollBar,
VScrollBar,
Timer,
DriveListBox,
DirListBox, FileListBox,
Shape,
Line,
Image,
Data i
OLE
Kontrolu na formu moemo postaviti na dva naina:
odabirom kontrole u ToolBox-u i prevlaenjem po formi ili
dvoklikom na kontrolu u ToolBox-u.
Svojstva (Property) kontrole mijenjamo odabirom svojstva u Properties prozoru Visual Basic-a i unosom vrijednosti u drugu kolonu odgovarajueg reda.
Kod za obradu dogaaja pie se u prozoru Code. Do njega dolazimo pritiskom na ikonu . Nakon toga sa lijevog padajueg menija biramo kontrolu iji dogaaj elimo programski obraditi, a sa desnog biramo dogaaj koji elimo obraditi. Nakon to se u podruiju za pisanje koda pojavi blok naredbi Private Sub / End Sub, unutar njega poinjemo sa pisanjem koda. Pisanje koda sastoji se od: pozivanja naredbi, procedura i funkcija Visual Basic-a, pozivanja procedura i funkcija koje je napisao programer,
dobijanja i postavljanja svojstva kontrola ,
pozivanja metoda kontrola i dr.
U narednim vjebama demostriraemo kako se kontrole postavljaju na formu, pokazaemo kako im se mijenjaju svojstva, te obraditi nekoliko dogaaja nekih kontrola.
VJEBE: Kontrole
Cilj vjebe
Uponzavanje studenata sa osnovnim kontrolama.
Tok vjebi
upoznavanje sa vanijim i ee koritenim kontrolama: Label, TextBox, frame, CommandButton, CheckBox, OptionButton, ComboBox, ListBox, HScrollBar, VScrollBar, Timer, DriveListBox, DirListBox, FileListBox, Shape, Line, Image, PictureBox
promjena osnovnih svojstava kontrolapisanje jednostavnog koda za obradu dogaajaVJEBA 2: Kreirati aplikaciju koja na glavnoj formi sadri tri Shape kontrole, Shape1, Shape2 i Shape3 i tri CommandButton kontrole. Postaviti svojstva FillColor kontrola Shape1, Shape2 i Shape3 na crvenu, utu i zelenu respektivno. Simulirati rad semafora tako da pritisak odreenog dugmeta izaziva paljenje jednog od svjetala. Koristiti FillStyle svojstvo Shape kontrola.
UPUTSTVO: Otvoriti novi projekat (FileNew ProjectStandard EXE).
U prozoru sa kontrolama kliknite na ikonu za dodavanje oblika i prevucite odreeno podruje na formi da bi ste postavili Shape kontrolu. Uinite to tri puta kako bi ste postavili tri kruga. Svakoj dodatoj kontroli promijenite svojstvo Shape u Circle, svojstvo FillColor u odgovarajuu boju a svojstvo FillStyle u Transparent.U prozoru sa kontrolama kliknite na ikonu za dodavanje dugmeta i prevucite odreeno podruje na formi da bi ste postavili CommandButton kontrolu. Uinite to tri puta i svakom dugmetu promijenite svojstvo Caption u Crveno, Zuto i Zeleno respektivno.
Kliknite na svako dugme dva puta i u prozoru za dodavanje koda unesite kod za obradu dogaaja Click kao na sledeem listingu:
Private Sub Command1_Click()
Shape1.FillStyle = 0
Shape2.FillStyle = 1
Shape3.FillStyle = 1
End Sub
Private Sub Command2_Click()
Shape1.FillStyle = 1
Shape2.FillStyle = 0
Shape3.FillStyle = 1
End Sub
Private Sub Command3_Click()
Shape1.FillStyle = 1
Shape2.FillStyle = 1
Shape3.FillStyle = 0
End Sub
Snimite projekat i formu pritiskom na ikonu koja se nalazi na standardnom Toolbar-u ili odabirom opcije FileSave Project. Visual Basic okruenje e Vas pitati za naziv forme i projekta. Prihvatite Project1 i Form1.
Testirajte program tako to ete pritisnuti ikonu ili odabirom opcije Runstart ili pritiskom na tipku F5 na tastaturi.
VJEBA 3: Kreirati aplikaciju koja na glavnoj formi sadri tri OptionButton kontrole i jednu Label kontrolu. Obraditi Click dogaaje OptionButton kontrola tako da se izborom bilo koje opcije svojstvo labele promijeni u Odabrali ste opciju: + naziv opcije.
UPUTSTVO: Otvoriti novi projekat (FileNew ProjectStandard EXE).
U prozoru sa kontrolama kliknite na ikonu za dodavanje opcionog dugmeta i prevucite odreeno podruje na formi da bi ste postavili OptionButton kontrolu. Uinite to tri puta kako bi ste postavili tri opcije. Svakoj dodatoj kontroli promijenite svojstvo Caption u Opcija jedan, Opcija dva i Opcija tri respektivno.
Postavite labelu na sredinu forme.
Dvoklikom na svaku OptionButton kontrolu otvara Vam se prozor za unos koda koji se izvrava kada se dogodi Click dogaaj. Za svaku opciju unesite kod kao na sledeem listingu.
Private Sub Option1_Click()
Label1.Caption = "Odabrali ste opciju: " + Option1.Caption
End Sub
Private Sub Option2_Click()
Label1.Caption = "Odabrali ste opciju: " + Option2.Caption
End Sub
Private Sub Option3_Click()
Label1.Caption = "Odabrali ste opciju: " + Option3.Caption
End Sub
Testirajte program tako to ete pritisnuti ikonu ili odabirom opcije Runstart ili pritiskom na tipku F5 na tastaturi.VJEBA 4: Kreirati aplikaciju koja na glavnoj formi sadri jednu ListBox, jednu ComboBox i dvije Label kontrole. Obraditi Click dogaaj ListBox i ComboBox kontrola tako da se selekcijom u listama u labelama ispisuje odabrane vrijednosti. Obratiti panju na grafiki prikaz (stil) labela.
UPUTSTVO: Otvoriti novi projekat (FileNew ProjectStandard EXE).
U prozoru sa kontrolama kliknite na ikonu za dodavanje liste vrijednosti i prevucite odreeno podruje na formi da bi ste postavili ListBox kontrolu. Popunite List svojstvo ove kontrole vrijednostima: Bosna i Hercegovina, Srbija, Hrvatska, Slovenija, Makedonija i Crna Gora.
U prozoru sa kontrolama kliknite na ikonu za dodavanje padajue liste vrijednosti i prevucite odreeno podruje na formi da bi ste postavili ComboBox kontrolu. Popunite List svojstvo ove kontrole vrijednostima: Osnove programiranja, Programiranje, Internet programiranje, Informacioni sistemi i Baze podataka.
Postavite dvije labele Label 1 i Label2 na formu.
Dvoklikom na ListBox i ComboBox kontrole otvara Vam se prozor za unos koda koji se izvrava kada se dogodi Click dogaaj. Za svaku opciju unesite kod kao na sledeem listingu.
Private Sub Combo1_Click()
Label2.Caption = Combo1.List(Combo1.ListIndex)
End Sub
Private Sub List1_Click()
Label1.Caption = List1.List(List1.ListIndex)
End Sub
Testirajte program tako to ete pritisnuti ikonu ili odabirom opcije Runstart ili pritiskom na tipku F5 na tastaturi.VJEBA 5: Kreirati jednostavnu aplikaciju koja na glavnoj formi sadri jednu DriveListBox i jednu DirListBox kontrolu. Obraditi Change dogaaj DriveListBox kontrole tako da se promjenom drajva u DriveListBox kontroli promijeni sadraj DirListBox kontrole.
UPUTSTVO: Otvoriti novi projekat (FileNew ProjectStandard EXE).
U prozoru sa kontrolama kliknite na ikonu za odabiranje drajva i prevucite odreeno podruje na formi da bi ste postavili DriveListBox kontrolu.U prozoru sa kontrolama kliknite na ikonu za odabiranje direktorijuma i prevucite odreeno podruje na formi da bi ste postavili DirListBox kontrolu.Dvoklikom na DriveListBox kontrolu otvara Vam se prozor za unos koda koji se izvrava kada se dogodi Change dogaaj. Unesite kod kao na sledeem listingu.
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Testirajte program tako to ete pritisnuti ikonu ili odabirom opcije Runstart ili pritiskom na tipku F5 na tastaturi.VJEBA 6: Projektu iz prethodne vjebe dodati jednu FileListBox kontrolu. Obraditi Change dogaaj kontrole DirListBox, tako da se promjenom foldera u FileListBox kontroli ispise lista svih fajlova iz selektovanog foldera.
UPUTSTVO: Otvoriti novi projekat (FileNew ProjectStandard EXE).
Kao i u prethodnoj vjebi dodajte po jednu DriveListBox i jednu DirListBox kontrolu.
Zatim u prozoru sa kontrolama kliknite na ikonu za odabiranje fajla i prevucite odreeno podruje na formi da bi ste postavili FileListBox kontrolu.Dvoklikom na DriveListBox i DirListBox kontrole otvara Vam se prozor za unos koda koji se izvrava kada se dogodi Change dogaaj. Unesite kod kao na sledeem listingu.
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Testirajte program tako to ete pritisnuti ikonu ili odabirom opcije Runstart ili pritiskom na tipku F5 na tastaturi.MODUL 3: Kontrole svojstva, metode i dogaajiLabel najee se koristi kao statini tekst iza kog slijedi TextBox kontrola.svojstvo Appearance - grafiki izgled kontrole0-Flat kontrola ima standardni okvir
1-3D kontrola ima trodimenzionalni okvir
(samo ako je svojstvo BorderStyle postavljeno na 1-FixedSingle)svojstvo BorderStyle - da li se iscrtava okvir oko kontrole0-None kontrola je bez okvira
1-Fixed single kontrola ima tip okvira zavisno od vrijednosti svojstva Appearance
svojstvo AutosizeTrue - veliina kontrole e biti prilagoena tekstu koji kontrola sadriFalse - inicijalno
svojstvo BackStyle - nain iscrtavanja kontrole na formi (ako se postavlja preko neke druge kontrole npr. slike)1-Opaque kontrola prekriva sadraj ispod sebe
0-Transparent kontrola je transparentna
svojstvo Caption - tekstualni sadraj kontroleHot-Key kombinacija se definie postavljanjem simbola & ispred slova koje je Hot-Key".Fokus se postavlja ne na labelu ve na prvu sledeu kontrolu. UseMnemonic svojstvo mora biti True.
svojstvo Alignment - poravnanje teksta
0-Left Justify1-Right Justify
2-Center
svojstvo WordWrap odreuje raspored teksta u labeli (AutoSize mora biti True)
dogaaj Click dogaa se kada korisnik miem klikne na kontroluTextBox omoguava unos i izmjenu teksta za vrijeme izvravanja programa.
svojstvo MultiLine odreuje da li se tekst prostire u jednoj (False) ili vie (True) linija
svojstvo ScrollBars trake za pomijeranje teksta (samo ako je MultiLine True)0-None
1-Horizontal
2-Vertical
3-Bothsvojstvo HideSelection da li e oznaeni tekst ostati markiran kada kontrola izgubi fokus (False) ili nee ostati markiran (True - podrazumijevano)svojstvo MaxLength odreuje maksimalan broj unijetih karakterasvojstva SelStart, SelLength, SelText omoguavaju selektovanje teksta i vraanje selektovanog sadraja
svojstvo PasswordChar sakrivanje ukucanog sadraja u TexBox kontrolu
svojstvo Locked zakljuavanje kontrole za bilo kakve izmjene
metoda SetFocus postavlja fokus na TextBox kontroludogaaj Click aktivira se kada korisnik klikne miem na kontrolu
dogaaj LostFocus aktivira se kada kontrola izgubi fokus
dogaaji KeyDown, KeyPress aktiviraju se prilikom pritiska na tipku tastature a razlikuju se po parametrima koje prihvataju- KeyCode i Shift odnosno KeyAsciiCommandButton vizuelni interfejs za pokretanje akcija; moe imati tekst ili sliku; u Click dogaaj piemo kod koji se izvrava pritiskom na dugme
svojstvo Caption
svojstvo Picture podrani formati su: bmp, ico, gif, jpg, wmf; samo ako je svojstvo Style postavljeno na 1-graphical
svojstva Default, Cancel definiu da li je dugme podrazumijevano za pritisak tipki entar i Esc; samo jedno dugme na formi moe imati svojstvo Cancel postavljeno na Truemetod SetFocusdogaaj ClickCheckBox kontrola sa tri stanja: ekirana, nije ekirana, nedefinisano stanje; ako ima ovakvih vie kontrola na formi one nisu iskljuivesvojstvo Style odreuje nain prikaza kontrole0 Standard
1 Graphical
svojstva Picture, DisabledPicture, DownPicture prikazuju sliku ako dugme nije pritisnuto, onemogueno ili ako je pritisnuto; samo ako svojstvo Style ima vrijednost Graphical
svojstvo Alignment pozicija kuice za ekiranje u odnosu na tekst
svojstvo Value vraa stanje kontrole
0-Unchecked1-Checked2-Grayedmetoda SetFocusdogaaj ClickOptionButton izbor meusobno iskljuivih opcijasvojstvo Value moe imati vrijednost True ili False u zavisnosti od toga da li je pritisnuta ili nijedogaaj ClickFrame kontrola koja grupie druge kontrole kontejner kontrola tipino za OptionButton kontrole tokom dizajniranja se sa pomijeranjem Frame kontrole pomijeraju i sve kontrole unutar Frame kontrole
svojstvo BorderStyle da li je okvir iscrtan (0-None) ili nije (1-Fixed Single)
svojstvo Appereance ako je BorderStyle 1 odreuje da li e okvir biti iscrtan trodimenzionalno ili ne
svojstvo Caption sadri tekst koji e se ispisati u vrhu Frame kontrole
ListBox izbor jedne ili vie vrijednosti iz listesvojstvo List lista vrijednosti koje se prikazuju
svojstvo ItemData lista vrijednosti koje se vraaju kao rezultat odabira
svojstvo Column odreuje da li se lista skroluje vertikalno (0) ili horizontalno tj u koliko kolonasvojstvo MultiSelect odreuje koliko i kako se mogu selektovati vrijednosti iz liste
0 None samo jedna opcija
1 Simple mogu izbor vie stavki; ponovnim klikom stavka se deselktuje
2 Extended selektovanje vie opcija pomou tipke Ctrlsvojstvo Selected pokazuje da li je opcija selektovana Lista.Selected(x)=True ili nije Lista.Selected(x)=false
svojstvo SelCount vraa broj selektovanih opcija u listi
svojstvo Sorted da li je lista sortirana ili nije
svojstvo Style standardna lista ili lista sa poljima za ekiranje
svojstvo ListIndex vraa ili postavlja indeks aktivne stavke u listi
svojstvo List vraa tesktualnu vrijednost iz liste
metoda Clear prazni listu
metoda AddItem dodaje opciju u listu
metoda RemoveItem brie opciju iz liste
dogaaji Click, DblClick, ComboBox izbor vrijednosti iz padajue liste; kombinacija TextBox i ListBox kontrola; nema MultiSelect a samim tim ni Selected i SelectCount; ostala svojstva vae kao i za ListBoxsvojstvo Style modovi koritenja ComboBox kontrole0 DropDown Combo mogu unos teksta i odabir sa liste
1 Simple Combo nema strelice za listu a izbor se vri tasterima gore/dole
2 DropDown List mogu izbor sa liste ali nije omoguen unos teksta
dogaaji Click, Change (samo ako je Style 0 ili 1)HScrollBar, VScrollBar horizontalni i vertikalni klizaisvojstva Min, Max, Value predstavljaju minimalnu,maksimalnu i trenutnu vrijednost
svojstva SmallChange i LargeChange reguliu korak pomijeranja klizaaTimer koristi se za izvravanje nekih akcija u jednakim vremenskim intervalima; nema grafiku reprezentaciju
svojstvo Interval vremenski interval u milisekundama nakon kog se izvrava niz instrukcija definisanih u Timer dogaaju
svojstvo Enabled pokazuje da li je tajmer aktivan tj da li e nakon svakih Interval milisekundi pokretati kod iz Timer dogaaja ili se nee nita deavati
dogaaj Timer kod koji e se izvravati svakih Interval milisekundi ako je svojstvo Enabled postavljeno na True
Image koristi se za prikazivanje gotovih slikasvojstvo Picture omoguava da se kontrlola povee sa slikom tj da se prikae slikaShape koristi se za crtanje geometrijskih oblikasvojstvo Shape odreuje oblik
0 - Rectangle (pravougaonik)
1 - Square (kvadrat)
2 - Oval (elipsa)
3 - Circle (krug)
4 - Rounded Rectangle (pravougaonik sa zaobljenim ivicama)
5 - Rounded Square (kvadrat sa zaobljenim ivicama)svojstvo BackStyle odreuje da li e pozadina biti vidljiva (1 Opaque) ili ne (0 Transparent)
svojstvo BacColor boja pozadine
svojstvo BorderStyle nain iscrtavanja geometrijskog oblika
0 - Transparent (okvir je providan, ne iscrtava se)
1 - Solid (puna linija)
2 - Dash (crtice)
3 - Dot (take)
4 - Dash-Dot (crta-taka)
5 - Dash-Dot-Dot (crta-taka-taka)
6 - InsideSolid (spoljna ivica okvira je istovremeno i spoljna ivica oblika)svojstvo FillColor boja ispune oblika
svojstvo FillStyle - odreuje da li e ispuna biti vidljiva (0 Solid) ili ne (1 Transparent)
Line koristi se za iscrtavanje linija
svojstva BorderColor, BorderStyle, BorderWidth slue za izbor boje, stil linije, debljinu linije
svojstva X1, X2, Y1 i Y2 odreuju poloaj linije na formi
PictureBox koristi se za prikazivanje slike (slino Image kontroli) i za crtanjeZa uitavanje slike tokom izvravanja programa koristi se LoadPicture funkcija Visual Basic-a.svojstvo Align - odreuje poziciju kontrole u odnosu na formu
0 - None (kontrola je bez poravnanja)
1 - Align Top (nalazi se na vrhu forme, irine iste kao forma)
2 - Align Bottom (na dnu forme)
3 - Align Left (sa leve strane)
4 - Align Right
svojstvo BackColor - ima uticaja samo prilikom crtanja po kontroli
svojstvo DrawStyle, DrawWidth kao i kod Shape kontrolesvojstvo ForeColor - boja koja se koristi prilikom crtanja ili ispisa tekstasvojstvo FontTransparent - da li je tekst ispisan na kontroli sa transparentnom pozadinom (True) ili ne (False).metoda Cls - koja brie sadraj PictureBox kontrole, ali samo elemente koji su nacrtani ili ispisani za vrijeme izvravanja programa; slike uitane za vrijeme izvravanja programa ili u dizajn reimu ostaju neizmijenjenemetoda PSet - crta taku na datoj koordinati i bojiobjekt.PSet (x, y), [color]
metoda Point readonly; vraa boju take na zadatoj koordinati u
PictureBox kontroli
metoda Line - crtanje linije, praznih i popunjenih okvira. Sintaksa je:
objekt.Line (x1, y1) - (x2, y2), [color], [B][F]
- (x1,y1) opcioni parametar koji oznaava koordinate poetka linije; ako se izostavi
podrazumevan poetak je poslednja posjeena koordinata (CurrentX i CurrentY)
- (x2,y2) obavezni parametri, oznaavaju koordinate kraja linije
- [color] isto znaenje kao kod PSet metode
- [B] opcioni parametar Block; oznaava da e umesto linije biti nacrtan
pravougaonik (ili kvadrat), ija je diagonala data linija; oblik e biti
popunjen bojom odreenom sa FillColor i tipom ispune odreenim sa
FillStyle svojstvima PictureBox-a
- [F] opcioni parametar, oznaava da e oblik biti popunjen istom bojom
kojom je nacrtan okvir oblika; obavezan parametar Bmetoda Circle - crta kruga ili elipsu
objekt.Circle (x, y), radius, [color, , aspect]
- (x,y) obavezan parametar koji predstavlja centar kruga ili elipse
- radius je obavezan parametar koji predstavlja prenik kruga
- [color] opcioni parametar, kao kod PSet metode
- aspect, opcioni parametar koji postavlja odnos visine i irine kruga; ako
se izostavi podrazumeva se da je njegova vrednost 1, ime se dobija krug; vrijednosti razliita od 1 discrtava elipsu
DriveListBox koristi se za prikazivanje i odabir drajvoa na raunaru
svojstvo Drive vraa trenutno aktivni drajv ove kontrole
svojstvo ListCount vraa broj stavki u listi
svojstvo ListIndex vraa indeks trenutno selektovane opcijesvojstvo List vraa naziv drajva oznaenim odgovarajuim indeksom
dogaaj ChangeDirListBox koristi se za prikazivanje liste direktorijuma
svojstvo Path vraa putanju trenutno selektovanog foldera
dogaaji Change, Click
FileListBox koristi se za prikazivanje liste fajlova otvorenog direktorijuma
svojstva Archive, Hidden, Normal, System, ReadOnly odreuju da li e fajlovi sa odreenim atributima biti prikazaniVJEBE: Kontrole svojstva, metode i dogaaji
Cilj vjebe
Upoznavanje studenata sa kontrolama koje se nalaze u ToolBox-u. Upoznavanje sa svojstvima, dogaajima i metodama, promjena svojstava, pisanje koda koji odgovara na dogaaje i pozivanje metoda.
Tok vjebi
promjena svojstava pisanje koda koji odgovara na dogaaje pozivanje metoda kontrola
VJEBA 7: Postaviti odgovarajue kontrole kao na sledeoj slici i demonstrirati prethodno dati teorijski dio za ovu vjebu za svaku kontrolu.
VJEBA 8: Postaviti jednu Label, dva CommandButton i jednu Timer kontrolu. Pritiskom na prvo dugme pokrenuti ispis vremena u labeli tj simulirati rad asovnika, a pritiskom na drugo dugme zaustaviti asovnik.
VJEBA 9: Postaviti po jednu Image, Shape, Line i Picture Box. Za razliita svojstva navedena u pripremi ove vjebe pokretati aplikaciju. Za kontrolu PictureBox postavii dugmad koja e imati sledee funkcionalnosti: postavljanje slike,
uitavanje druge slike,
brisanje povrine za crtanje,
iscrtavanje take i ispis boje take,
iscrtavanje pravougaonika,
iscrtavanje linije,
iscrtavanje elipse i
iscrtavanje kruga.
VJEBA 10: Na formu postaviti po jednu: DriveListBox, DirListBox i FileListBox kontrolu. Postaviti dugmad na formi iji e Click dogaaji pozivati MsgBox funkcije koje daju informacije o sledeim svojstvima kontrola: DriveListBox.Drive
DriveListBox.ListCount
DriveListBox.ListIndex
DriveListBox.List(3)
DirListbox.Path
kao i da omogui filtriranje FileListBox kontrole po atributima ili po ekstenziji.
VJEBA 11: Kombinovati vjebe 6 i 9. Na formu postaviti po jednu: DriveListBox, DirListBox, FileListBox, PictureBox. Obezbijediti:
da se promjenom drajva u DriveListBox kontroli promijeni spisak foldera u DirListBox kontroli, da se promjenom foldera DirListBox kontroli promijeni spisak fajlova u FileListBox kontroli i da se dvoklikom na fajl sa spiska fajlova u FileListBox kontroli u PictureBox kontroli prikae slika.FileListBox kontrolu filtrirati tako da prikazuje samo spisak fajlova sa ekstenzijama: bmp, gif i jpg.
UPUTSTVO:Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_DblClick()
Set Picture1.Picture = LoadPicture(Dir1.Path + "\" + File1.FileName)
End Sub
MODUL 4: MsgBox, InputBox, CommonDialog dijaloziInputBox
Prikazuje TextBox kontrolu u dijalogu, ime omoguava jednostavno prihvatanje podataka od korisnika programa. Programer je osloboen kreiranja forme za unos podataka, ali nema mogunost kontrolisanja formata unesenih podataka. InputBox( prompt [, title] [, default] )Prompt poruka kojom se korisnik upuuje ta se od njega oekuje da unese
Title tekst koji se ispisuje u vrhu dijaloga
Default inicijalna vrijednost dijaloga
InputBox funkcija vraa podatak tipa string.MsgBoxMsgBox funkcija omoguava programeru da tokom izvravanja programa korisniku vrati poruke.MsgBox( prompt [, buttons] [, title] )
Prompt tekst porukeButtons vrijednost koja definie nain prikaza porukeTitle tekst koji se ispisuje u vrhu dijaloga
Vrijednosti koje moe da vrati funkcija MsgBox date su u sledeoj tabeli:
CommonDialogCommonDialog kontrola omoguava koritenje Windows-ovih sistemskih dijaloga:
Open (otvara se metodom ShowOpen),
Save / Save As (otvara se metodom ShowSave),
Font (otvara se metodom ShowFont),
Color (otvara se metodom ShowColor), Printer (otvara se metodom ShowPrinter) i Help (otvara se metodom ShowHelp)
Vano svojstvo je CancelError (True / False). Ako je postavljeno na False nee doi do prikida u izvrenju programa ako korisnik pritisne Cancel dugme.Princip upotrebe CommonDialog kontrola je sledei:
postaviti CommonDialog kontrolu na formu,
tokom dizajniranja programa (kroz Properties prozor) ili programski u toku izvravanja programa postaviti svojstva CommonDialog kontrole,
pozvati dijalog i
ispitati da li je dolo do greke (provjeriti da li je Err.Number0)
Flags svojstvo slui za fino podeavanje CommonDialog kontrole. FileOpen dijalogKoristi se za izbor fajla sa diska. Otvara se metodom ShowOpen.DialogTitle svojstvo slui za postavljanje naslova dijaloga.
FileName vraa naziv fajla koji je korisnik odabrao.
Filter slui za postavljanje filtera pri izboru fajlova.
npr: CommonDialog1.Filter = "Tekst fajlovi|*.txt|Dokumenti|*.doc|Svi fajlovi|*.*"Flags slui za fino podeavanje dijaloga.
FileSave dijalogKoristi se za izbor fajla sa diska u koji e se vriti snimanje. Otvara se metodom ShowSave.
DialogTitle svojstvo slui za postavljanje naslova dijaloga.
FileName vraa naziv fajla koji je korisnik odabrao.
Filter slui za postavljanje filtera pri izboru fajlova.
npr: CommonDialog1.Filter = "Tekst fajlovi|*.txt|Dokumenti|*.doc|Svi fajlovi|*.*"DefaultExt sadri podrazumijevanu ekstenziju po predpostavkom da korisnik ne navede nikakvu ekstenziju.
Flags slui za fino podeavanje dijaloga. Npr. cdlOFNOverwritePrompt upozorava da fajl sa odabranim imenom ve postoji.
Font dijalogKoristi se za izbor fonta i njegovih atributa. Otvara se metodom ShowFont.
Svojstva: FontName, FontSize, FontBold, FontItalic, FontUnderline, FontStrikeout, Color, Flags slui za fino podeavanje dijaloga. Vie vrijednosti se odvaja kjunom rijei Or.
Color dijalogKoristi se za izbor boje. Otvara se metodom ShowColor.
Najvanije svojstvo je Color koje postavlja inicijalnu boju pri otvaranju dijaloga (uz Flags = cdlCCRGBInit) ili vraa odabranu boju.
Print dijalogKoristi se za pokretanje print setup dijaloga za podeavanje tampe ili za standardni print dijalog. Otvara se metodom ShowPrinter.
Min - minimalan broj strane koji se moe odtampati.Max maksimalan broj strane koji se moe odtampati.
FromPage poetna stranica.
ToPage poslednja stranica za tampu.
Flags fino podeavanje dijaloga npr:
CdlPDAllPages - izabrano tampanje svih strana (od Min do Max)
CdlPDPageNums - izabrano tampanje grupe strana (od FromPage do ToPage)
CdlPDSelection - izabrano tampanje selektovanog teksta
Help dijalogKoristi se za pokretanje sistema za pomo. Otvara se metodom ShowPrinter.
HelpFile naziv .hlp ili .chm fajla iz kog se pruaju informacije.
HelpCommand definie tip pomoi npr cdlHelpContents prikazuje sadraj tj. stablo pojmova u sistemu pomoi.
VJEBE: MsgBox, InputBox, CommonDialog dijalozi
Cilj vjebe
Upoznavanje studenata sa funkcijama InputBox, MsgBox kao i sa razliitim oblicima koritenja kontrole CommonDialog.
Tok vjebi
demostracija funkcija InputBox i MsgBox pozivanje Open, Save / Save As, Font, Color,Printer i Help dijaloga
VJEBA 12: Demonstrirati razne mogunosti poziva InputBox i MsgBox funkcija.
UPUTSTVO:Private Sub Command1_Click()
Dim Rezultat
Rezultat = InputBox("Unesite broj izmedju 1 i 3", "InputBox Demo", "2")
End Sub
Private Sub Command2_Click()
Dim Rezultat
Rezultat = MsgBox("vbOKOnly", vbOKOnly, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbOKCancel", vbOKCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbAbortRetryIgnore", vbAbortRetryIgnore, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbYesNoCancel", vbYesNoCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbYesNo", vbYesNo, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbRetryCancel", vbRetryCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbCritical", vbCritical, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbQuestion", vbQuestion, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbExclamation", vbExclamation, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbInformation", vbInformation, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("Kombinacija: vbCritical + vbYesNoCancel", vbCritical + vbYesNoCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("Kombinacija: vbQuestion + vbYesNoCancel", vbQuestion + vbYesNoCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("Kombinacija: vbExclamation + vbYesNoCancel", vbExclamation + vbYesNoCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("Kombinacija: vbInformation + vbYesNoCancel", vbInformation + vbYesNoCancel, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbYesNoCancel + vbDefaultButton1", vbYesNoCancel + vbDefaultButton1, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbYesNoCancel + vbDefaultButton2", vbYesNoCancel + vbDefaultButton2, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
Rezultat = MsgBox("vbYesNoCancel + vbDefaultButton3", vbYesNoCancel + vbDefaultButton3, "MsgBox Demo")
Form1.Caption = "Rezultat MsgBox funkcije je " + Trim(Str(Rezultat))
End Sub
VJEBA 13: Demonstrirati razne naine upotrebe CommonDialog kontrole. Postaviti jednu CommonDialog kontrolu i sedam dugmadi koja e u dogaaju Click imati kod za pozivanje CommonDialog kontrole u: Open, Save / Save As, Font, Color,Printer i Help reimu.
UPUTSTVO:Private Sub Command1_Click()
CommonDialog1.DialogTitle = "Otvori datoteku"
' CommonDialog1.Flags = cdlOFNFileMustExist & cdlOFNHelpButton
' CommonDialog1.Flags = &H1000 + &H10
CommonDialog1.Flags = 4112
CommonDialog1.Filter = "Word dokument(*.doc)|*.doc|Svi fajlovi(*.*)|*.*"
CommonDialog1.ShowOpen
If Err.Number 0 Then
MsgBox "Otkazan dijalog", vbInformation, "Open dijalog"
Err.Clear
Exit Sub
End If
MsgBox CommonDialog1.FileName, vbInformation, "Otvoren fajl"
End Sub
Private Sub Command2_Click()
CommonDialog1.DialogTitle = "Snimi fajl"
CommonDialog1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly
CommonDialog1.Filter = "Word dokument(*.doc)|*.doc|Svi fajlovi(*.*)|*.*"
CommonDialog1.ShowSave
If Err.Number 0 Then
MsgBox "Otkazan dijalog", vbInformation, "Save dijalog"
Err.Clear
Exit Sub
End If
MsgBox CommonDialog1.FileName, vbInformation, "Save file"
End Sub
Private Sub Command3_Click()
CommonDialog1.Flags = cdlCFForceFontExist Or cdlCFScreenFonts Or cdlCFTTOnly Or cdlCFEffects
CommonDialog1.FontName = Text1.FontName
CommonDialog1.FontSize = Text1.FontSize
CommonDialog1.FontBold = Text1.FontBold
CommonDialog1.FontItalic = Text1.FontItalic
CommonDialog1.FontUnderline = Text1.FontUnderline
CommonDialog1.FontStrikethru = Text1.FontStrikethru
CommonDialog1.Color = Text1.ForeColor
CommonDialog1.ShowFont
If Err.Number Then
Err.Clear
Exit Sub
End If
Text1.FontName = CommonDialog1.FontName
Text1.FontSize = CommonDialog1.FontSize
Text1.FontBold = CommonDialog1.FontBold
Text1.FontItalic = CommonDialog1.FontItalic
Text1.FontUnderline = CommonDialog1.FontUnderline
Text1.FontStrikethru = CommonDialog1.FontStrikethru
Text1.ForeColor = CommonDialog1.Color
End Sub
Private Sub Command4_Click()
CommonDialog1.Flags = cdlCCRGBInit
CommonDialog1.Color = Picture1.BackColor
CommonDialog1.ShowColor
If Err.Number Then
Err.Clear
Exit Sub
End If
Picture1.BackColor = CommonDialog1.Color
End Sub
Private Sub Command5_Click()
CommonDialog1.Flags = cdlPDPrintSetup Or cdlPDReturnDC
CommonDialog1.ShowPrinter
If Err.Number 0 Then
Err.Clear
Exit Sub
End If
End Sub
Private Sub Command6_Click()
CommonDialog1.Min = 1
CommonDialog1.Max = 10
CommonDialog1.FromPage = 2
CommonDialog1.ToPage = 4
CommonDialog1.ShowPrinter
If Err.Number 0 Then
Err.Clear
Exit Sub
End If
If CommonDialog1.Flags = cdlPDAllPages Then
MsgBox "Stampanje svih strana"
ElseIf CommonDialog1.Flags = cdlPDPageNums Then
MsgBox "Stampanje strana od " & CommonDialog1.FromPage & " do " & CommonDialog1.ToPage
ElseIf CommonDialog1.Flags = cdlPDSelection Then
MsgBox "Stampanje selekcije"
End If
End Sub
Private Sub Command7_Click()
CommonDialog1.HelpFile = "VBDEF98.chm"
CommonDialog1.HelpCommand = cdlHelpContents
CommonDialog1.ShowHelp
End Sub
MODUL 5: Forme, MDI, menijiFormeForma predstavlja osnovu za kreiranje grafikog korisnikog interfejsa (GUI).
Forma je kontejner za sve ostale komponente.Najznaajnija svojstva forme su:
Name jedinstveno ime preko kog se u kodu referie na formuBackColor - Boja pozadine formeBorderStyle - definie vrstu okvira i ponaanje forme. 0-None, forma je bez okvira
1-Fixed Single, okvir jednostruke debljine
2-Sizable, okvir koji omoguava izmjenu dimenzije forme (inicijalna vrijednost)
3-Fixed Dialog, forma ima fiksni okvir kome se ne mogu mijenjati dimenzije
4-Fixed ToolWindow, forma ima izgled toolbox-a, manji font se koristi za naslov forme i nije mogue mijenjati dimenzije forme 5-Sizable ToolWindow, isto kao 4 samo je mogue mijenjati dimenzije formeCaption tekst naslova forme
ControlBox da li kontrola ima (True) ili nema (False) control box
Icon ikona forme
MaxButton da li e se prikazati dugme za maksimalno uveavanje forme
MinButton da li e se prikazati dugme za minimizirenj forme
Moveable da li korisnik moe (True) ili ne moe (False) da pomijera formu
Picture postavljanje slike na formu
ShowInTaskBar da li e otvorena forma biti prikazana na TaskBar-u Windowsa
WindowState dimenzije forme prilikom otvaranja: 0-Normal, 1-Minimized, 2-Maximized
Neke od najee koritenh metoda forme su:
Show za prikazivanje forme
Hide uklanja formu sa ekrana ali je ne i iz memorije (sledei poziv Show metode je znatno bri jer je forma ve u memoriji)
Load uitava formu u memoriju ali je ne prikazuje na ekranu
Unload uklanja formu iz memorije (i logino sa ekrana ako je bila prikazana)Move koristi se za postavljanje svojstava Left, Top, Width, Height (FormName.Move Left, [Top], [Width], [Height])
Kao i kod PictureBox kontrole mo\emo koristiti matode crtanja po formi:
Circle: FormName.Circle (X,Y) , Radius, Color
Line: FormName.Line (x1,y1) (x2,y2)
PSet: FormName.PSet (X,Y), ColorMetode ispisa i brisanja teksta na formi:
Print: FormName.Print()Primjeri:
Form1.Print "abc", "def", "ghi"
Form1.Print
Form1.Print "12345"
Form1.Print "Primjer", Spc(5), "5 praznina"
Form1.Print "Primjer", Tab(5), "5 tabova"
Form1.Print Now()
Form1.Print True
Form1.Print Null
Form1.Print 1234 + 1111Cls: Brise cijelu formu od sadraja koji su nacrtani metodama ili uklanja ispisani tekst.Ne utie na kontrole koje su na formi.MDIta je MDI aplikacija?
MDI (Multiple Document Interface) je interfejs za rad sa vie dokumenata. Forme su u odnosu roditelj / dijete. Jedna (i jedina roditeljska parent) forma sadri jednu ili vie dijete (child) formi.
Nasuprot MDI su SDI (Single Document Interface) aplikacije.
Osobine MDI aplikacija:
u aplikaciji moe postojati samo jedna roditeljska forma,
nema ogranienja na broj dijete formi,
roditeljska forma je kontejner za sve dijete forme,
svi meniji i toolbar-ovi su obino vezani za roditeljsku formu,
svaki dokument koji se obrauje nalazi se unutar vlastite dijete forme,
roditeljska forma se dodaje u projekat opcijom Add MDI form, u MDI roditeljsku formu mogu se postaviti samo: samo kontrole koje imaju Align svojstvo (PictureBox, ProgressBar*, StatusBar*, ToolBar*), Timer i CommonDialog kontrole *Da bi ste mogli dodavati ProgressBar, StatusBar, ToolBar na roditeljsku MDI formu morate omoguiti komponentu Microsoft Windows Common Controls 6.0 (SP6) na sledei nain: Project Components ekirati Microsoft Windows Common Controls 6.0 (SP6).
ActiveForm svojstvo roditeljske forme vraa referencu na aktivnu formu.
Arrange metod ureuje raspored dijete formi. Upotrebljava se na sledei nain:
ImeForme.Arrange(parametar) gdje parametar moe uzeti jednu od vrijednosti:
1 - Cascade za kaskadni raspored
2 - Tile za horizontal horizontalni
3 - Tile za vertical vertikalni
4 - Arrange Icons za araniranje minimiziranih prozora
Primjeri MDI aplikacija su Office aplikacije. Primjer SDI aplikacije je MS Paint.Modalne formeForme mogu da se otvore u dva reima: standardno (nemodalno) ili modalno.Sa formi koje su otvorene u standardnom reimu mogue je prenijeti fokus na drugu formu.
Sa formi koje su otvorene modalno nije mogue prenijeti fokus na drugu formu. Na drugu formu mogue je prei samo nakon zatvaranja modalne forme.
ImeForme.Show [vbModeless]
ImeForme.Show vbModalMenijiMenije kreiramo tako to pokreemo MenuEditor: ToolsMenuEditor.
Neophodno je popuniti barem svojstva Caption (tekst koji e se ispisati za opciju menija) i Name preko kog emo se referencirati na opciju menija.
Padajui menijiZa formu na kojoj elimo prikazati iskaui meni, prvo kreiramo klasini meni. Potrebno je kreirati takav meni koji ima jednu korijensku opciju. Preko svojstva Name te opcije se identifikuje meni. Tokom dizajniranja forme potrebno je postaviti svojstvo Visible na False. Ovo e omoguiti da po otvaranju forme meni ne bude vidljiv. U nekom trenutku tokom izvravanja programa kada nam je potreban iskaui meni potrebno je pozvati sledei kod:PopupMenu NazivMenija
MODUL 6: Tipovi podataka, promjenljive, nizovi i konstanteTipovi podatakaTipovi podataka u Visual Basic-u su: Byte, Boolean, Integer, Long, Currency, Decimal, Single, Double, Date, String, Object, Variant (podrazumijevani), korisniki definisani tipovi kao i specifini tipovi objekata. U sledeoj tabeli pobrojani su svi tipovi podataka Visual Basic-a:Data typeStorage sizeRange
Byte1 byte0 to 255
Boolean2 bytesTrue or False
Integer2 bytes-32,768 to 32,767
Long(long integer)4 bytes-2,147,483,648 to 2,147,483,647
Single(single-precision floating-point)4 bytes-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double(double-precision floating-point)8 bytes-1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency(scaled integer)8 bytes-922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal14 bytes+/-79,228,162,514,264,337,593,543,950,335 with no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001
Date8 bytesJanuary 1, 100 to December 31, 9999
Object4 bytesAny Object reference
String (variable-length)10 bytes + string length0 to approximately 2 billion
String(fixed-length)Length of string1 to approximately 65,400
Variant(with numbers)16 bytesAny numeric value up to the range of a Double
Variant(with characters)22 bytes + string lengthSame range as for variable-length String
User-defined(using Type)Number required by elementsThe range of each element is the same as the range of its data type.
Deklaracija promjenljivih i opseg vidljivostiMogue je deklarisati promjenljivu: tipa podataka i tipa objekta.
Primjer deklaracije promjenljive tipa podataka:
Dim brojzaposlenih As Integer
Primjer deklaracije promjenljive tipa objekta:
Dim forma As New Form
DimDim varname[([[lower To] upper])] [As [New] type]
Dim varname deklaracija promjenljive tipa Variant
Dim varname As type deklaracija promjenljive tip eksplicitno naveden
Dim varname As New type deklaracija promjenljive tipa objekat
Dim varname(upper) As type deklaracija niza odreene duine
Dim varname(lower To upper) As type deklaracija niza sa gornjom i donjom granicom indeksaDim na nivou modula omoguava vidljivost promjenljive u itavom modulu. Dim na nivou procedure/funkcije omoguava vidljivost promjenljive u itavoj proceduri.
PRIMJERI:
Promjenljive AnyValue i MyValue su podrazumijevano deklarisane kao Variant sa vrijednou postavljenom na Empty:Dim AnyValue, MyValue
Eksplicitna deklaracija promjenljive cjelobrojnog tipa:
Dim Number As Integer
Viestruka deklaracija u jednoj liniji pri emu je AnotherVar tipa Variant jer tip za nju nije naveden:
Dim AnotherVar, Choice As Boolean, BirthDate As Date
Primjer deklaracije niza iji su lanovi tipa Variant, a ija je duina 51. Indeksiranje elemenata je od 0 do 50, pod pretpostavkom da je Option Base postavljeno na 0 (podrazumijevana vrijednost koju je mogue postaviti na nivou modula)Dim DayArray(50)
Deklaracija dvodimenzione matrice iji su elementi cjelobrojne vrijednosti.Dim Matrix(3, 4) As Integer
Deklaracija trodimenzionalnog niza 5x6x3 iji su elementi tipa Double
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double
Deklaracija niza elemenata datumskog tipa iji indeks ide od 1 do 10.
Dim BirthDay(1 To 10) As Date
StaticStatic varname[([[lower To] upper])] [As [New] type]
Static promjenljiva definisana na nivou procedure/funkcije zadrava svoju vrijednost i izmeu poziva procedure i funkcije. To znai da druge procedure/funkcije ne mogu da mijenjaju static promjenljivu. Promjenjiva se ne moe deklarisati kao Static na nivou modula.PRIMJER:
Function KeepTotal(Number)
Static Accumulate As Integer
MsgBox ("Po ulasku u funkciju: " + Str(Accumulate))
Accumulate = Accumulate + Number
KeepTotal = Accumulate
MsgBox ("Po izlasku iz funkcije: " + Str(Accumulate))
End Function
Sub Command1_Click()
KeepTotal (1)
' Accumulate = 50
KeepTotal (1)
KeepTotal (1)
MsgBox ("Izvan Keeptotal funkcije: " + Str(Accumulate))
End SubVidimo da promjenljiva Accumulate mijenja vrijednost samo unutar KeepTotal funkcije. Ako unutar Click dogaaja dodijelimo neku vrijednost Accumulate promjenljivoj, mi smo u stvari napravili novu implicitno deklarisanu promjenljivu koja nema veze sa istoimenom static promjenljivom iz funkcije.
PrivatePromjenljiva deklarisana kao Private je vidljiva u itavom modulu, ali ne i u drugim modulima. Koristi se samo na nivou modula i ne moe se koristiti na nivou procedure.PublicPromjenljiva deklarisana kao Public je vidljiva u itavom modulu i u drugim modulima. Koristi se samo na nivou modula i ne moe se koristiti na nivou procedure.
NAPOMENA: Iz svega prethodno navedenog moemo zakljuiti da ne postoji nain da se promjenljiva deklarisana unutar procedure / funkcije vidi izvan nje.NizoviNiz predstavlja seriju promjenljivih istog tipa (numeriki, string, logiki, ).
Nizovi mogu biti:
fiksne duine i
promjenljive duine.
Nizove fiksne duine deklariemo na sledei nain:
Dim NazivNiza( [LowerBound To [UpperBound]] ) [As tippodataka]
Niz promjenljive duine deklariemo na sledei nain:
Dim NazivNiza() [As tippodataka]
pri emu nakon toga u kodu jednom ili vie puta moemo koristiti naredbu za promjenu dimenzija niza:
Redim [Preserve] NazivNiza( [LowerBound To [UpperBound]] )
Opcija Preserve se koristi ukoliko elimo da sauvamo sadraj elemenata niza. Ako je ne navedemo, svi podaci u nizu se briu.
Granice niza se mogu odrediti upotrebom funkcija:UBound(NazivNiza) i LBound(NazivNiza)Korisniki definisani tipoviKorisnicima je dozvoljeno da sami kreiraju svoje tipove.Oni omoguavaju struktuiranje podataka.
Korisniki tipovi sastavljeni su od standardnih tipova.
Korisniki tipovi su sloeni tipovi.
Tipove je mogue definisati samo na nivou modula.
[Private | Public] Type typename
elementname [([subscripts])] As type
[elementname [([subscripts])] As type]
. . .
End Type
Prethodno definisan tip se moe upotrijebiti pri deklaraciji promjenljivih:
Dim promjenljiva As typename ili
Dim niz(1 To 100) As typenameOsnovne operacije za rad sa promjenljivimaAritmetiki operatori^ eksponencijacija npr. 2^2 daje 4* mnoenje
/ dijeljenje npr. 10/3 daje 3.333333\ dijeljenje cjelobrojnih promjenljivih npr. 11\4 daje 2 ili 100\3 daje 33Mod ostatak pri dijeljenju npr. 10 Mod 3 daje 1, 12 Mod 4.3 daje 0, 12.6 Mod 5 daje 3(primijetimo da se realni brojevi najprije zaokrue)
+ sabiranje
- oduzimanje
Operatori poreenja=, =,
Operatori spajanja (stringova)& i +
Logiki operatori (nad promjenljivim tipa Boolean)And logiko i (ili poreenje bit po bit za numerike vrijednosti) npr. True And False daje False, 10 And 8 daje 8 (tj 1010 And 1000 daje 1000)Imp logika implikacija (A Imp B daje False samo ako je A True a B False; inae je true)Not logika negacija
Or logiko ili
Eqv logika ekvivalencija (ekvivalentno upotrebi Not Or tj A Eqv B ili Not(A Or B))
Xor logiko ekskluzivno ili (A Xor B daje True samo ako su A i B logiki razliiti; inae je False)Znaajnije funkcije za rad sa stringovimaLTrim(string) uklanja praznine na lijevoj strani stringa
RTrim(string) uklanja praznine na desnoj strani stringa
Trim(string) uklanja praznine na lijevoj i desnoj strani stringa
Left(string, length) vraa prvih length znakova stringa string
Right(string, length) vraa poslednjih length znakova stringa string
Mid(string, start[, length]) vraa length znakova stringa string od pozicije start
Len(string | varname) vraa duinu stringa
InStr([start, ]string1, string2) vraa poziciju prvog pojavljivanja stringa string1 u stringu string2
String(number, character) ponavljanje karaktera character number putaKonstante
Konstante se definiu na nivou aplikacije. Mogu se koristiti bilo gdje ali im program ne moe promijeniti vrijednost. Vidljivost moe biti na nivou modula (Private) ili na nivou aplikacije (Public.)
Konstante se deklariu na sledei nain:
[Public | Private] Const constname [As type] = expression
Primjeri:
' deklaracija konstante koja je podrazumijevano PrivateConst MyVar = 459
' deklaracija Public konstante
Public Const MyString = "HELP"
' eksplicitna deklaracija Private konstantePrivate Const MyInt As Integer = 5
' deklaracija vie konstanti u istoj linijiConst MyStr = "Hello", MyDouble As Double = 3.4567Funkcije za pretvaranje promjenljivih tipa string u drugi tipFunkcije za pretvaranje promjenljivih tipa string u drugi tip su: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar
Primjeri:
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" ' Define date.
MyShortDate = CDate(MyDate) ' Convert to Date data type.MyTime = "4:35:47 PM" ' Define time.
MyShortTime = CDate(MyTime) ' Convert to Date data type.
Neke specifinosti vezane za pojedine tipoveImplicitna deklaracija promjenljivihUkoliko se ne izvri implicitna deklaracija tipa promjenljive, tokom izvravanja programa tip e biti automatski odreen u kontekstu naredbe. Implicitna deklaracija moe dovesti do greaka koje kompajler ne moe otkriti.
Primjer:
Function SafeSqr(num)
TempVal = Abs(num)
SafeSqr = Sqr(TemVal)
End Function
Zato se preporuuje eksplicitna deklaracija.
Upotreba Option Explicit
Naredbom Option Explicit na poetku modula zahtijeva se eksplicidna deklaracija (odreivanje imena i tipa promjenljive) tako da kompajler moe da uoi eventualne greke u kodu jo u fazi kreiranja programa.
Da bi se naredba Option Explicit automatski pojavila na poetku svakog modula treba ekirati Tools Options Editor Require Variable Declaration.
Upotreba Option BaseNaredba Option Base nam omoguava postavljanje podrazumijevane donje granice za nizove na 0 ili1. Ukoliko se ne navede podrazumijevana je vrijednost 0. Sintaksa je:Option Base {0 | 1}
Deklaracija stringova fiksne duineString je mogue definisati tako da ima nepromjenljivu duinu. Primjer deklaracije stringa fiksne duine je:
Dim sFixed As String * 10
CurrencyJo neto o tipu Currency. Currency vrijednosti se uvaju kao velike cjelobrojne vrijednosti koje ne sadre decimalni zarez. Kada je vrijednost promjenljive potrebna VB je dijeli sa 10000 da bi se dobio realan broj na 4 decimale.BooleanLogike vrijednosti se interno smijetaju kao cjelobrojne vrijednosti: True kao -1 a False kao 0. Ideje za upotrebu ?!
DatePrikaz datuma i vremena zavisi od podeavanja formata datuma i vremena u Regional Settings.VariantVariant je podrazumijevani tip podataka i moe da prihvati bilo koju vrijednost. U razliitim trenucima tokom izvravanja programa moe da prihvata podatke razliitog tipa.Primjer:
Dim Temp As Variant
Temp = Now
Temp = 1
Temp = Ovo je string
Variant variabla moe da prihvati vrijednosti koje promjenljive ostalih tipova ne mogu:
Null vrijednost nepoznata,
Empty vrijednost nije dodijeljena,
Error greka vraena funkcijom CVerr,
Nothing omoguava da se varijabla oisti tj da se oslobodi memorija nakon to je sadravala objekat koji nam vie nije potreban
Za provjeru da li je vrijednost varijable Null ili Empty koriste se funkcije IsNull i IsEmpty.
Odreivanje tipa promjenljiveFunkcija TypeName vraa string koji pokazuje koji je tip promjenljive.TypeName(varname)
Funkcija VarType vraa cijeli broj koji pokazuje koji je tip promjenljive.
VarType(varname)
Prilikom upotrebe VarType funkcije za poreenje se mogu koristiti konstante koje su navedene u sledeoj listi:
VJEBE: Tipovi podataka, promjenljive, nizovi i konstante
Cilj vjebe
Upoznavanje studenata sa tipovima podataka, deklaracijom promjenljivih, ivotom trajanja promjenljivih, nizovima, korisniki definisanim tipovima, operatorima i konstantama.
Tok vjebi
demonstracija deklaracije varijabli i greaka koje nastaju u vezi sa opsegom vidljivosti demonstracija kreiranja i rada sa korisnikim tipovima, stringovima fiksne duine, Currency promjenljivima, Variant promjenljivima, Date tipom i TypeName funkcijom
demonstracija rada sa nizovima
demonstracija upotrebe funkcija koje rade sa stringovimaVJEBA 21: Kreirati aplikaciju sa jednom formom i dva modula. U modulu Module1.bas napisati funkciju KeepTotal koja e demonstrirati odravanje vrijednosti static promjenljive Accumulate. Sa glavne forme, pritiskom na dugme, tri puta pozvati funkciju KeepTotal koja e pri svakom pozivu uveati promjenljivu Accumulate.Probati deklarisati Private i Public promjenljivu u funkciji KeepTotal.
Pokuati deklarisati Static varijablu na nivou modula.
Uporediti promjenljive deklarisane naredbama Dim i Private na nivou modula.
Isprobati referenciranje na Dim i Private promjenljive deklarisane na nivou drugog modula.
UPUTSTVO:Form1.frmSub Command1_Click()
KeepTotal (1)
' Accumulate = 50
KeepTotal (1)
KeepTotal (1)
MsgBox ("Izvan Keeptotal funkcije: " + Str(Accumulate))
End Sub
Private Sub Command2_Click()
Call Ispis
End SubModule1.basOption Explicit
' primjer pogresne upotrebe Static deklaracije promjenljive izvan nivoa procedure/funkcije
' Static Prva As String
' ovako deklarisana promjenljiva DrugaDim je po opsegu vidljivosti Private tj vidljiva je na nivou modula
Dim DrugaDim As Integer
Private DrugaPrivate As Integer
Function KeepTotal(Number)
Static Accumulate As Integer
' primjer pogresne upotrebe Private deklaracije promjenljive izvan nivoa modula
' Private Treca As String
' primjer pogresne upotrebe Public deklaracije promjenljive izvan nivoa modula
' Public Cetvrta As String
DrugaDim = DrugaDim + 1
DrugaPrivate = DrugaPrivate + 1
MsgBox ("DrugaDim: " + Str(DrugaDim) + " DrugaPrivate: " + Str(DrugaPrivate))
MsgBox ("Po ulasku u funkciju: " + Str(Accumulate))
Accumulate = Accumulate + Number
KeepTotal = Accumulate
MsgBox ("Po izlasku iz funkcije: " + Str(Accumulate))
End FunctionModule2.basOption Explicit
Sub Ispis()
' neuspjesan ispis vrijednosti promjenljive DrugaDim i DrugaPrivate deklarisane u Module1.bas
' MsgBox ("DrugaDim: " + Str(DrugaDim))
MsgBox ("DrugaPrivate: " + Str(DrugaPrivate))
End Sub
VJEBA 22: Definisati jedan korisniki tip. Dodijeliti vrijednosti pojedinim poljima i ispisati ih na formi.
Deklarisati string duine 10, dodijeliti mu niz od 5 karaktera i na formi ispisati taj string iz kog slijedi neki tekst. Uoiti praznine na kraju prvog stringa.
Deklarisati jednu Currency promjenljivu, dodijeliti joj vrijednost pa je ispisati na formi. Izmnoiti takvu Currency varijablu realnim brojevima razliite preciznosti i dobijene rezultate ispisati na formi.
Na formi ispisati vrijednosti funkcija Now, Date i Time sa razliitim podeavanjima Regional Settings-a za datum i vrijeme.
Deklarisati promjenljivu tipa Variant pa joj dodijeliti: podatak tipa datum/vrijeme dobijen kao rezultat funkcije Now, cijeli broj 1, i tekst Ovo je string pa ispisati vrijednost te promjenljive tipa Variant.
Deklarisati nekoliko promjenljivih pa upotrebom funkcije TypeName ispisati njihove tipove.
UPUTSTVO:Option Explicit
Private Type EmployeeRecord
ID As Integer
Name As String
Address As String
Phone As String
End Type
Private Sub Form_Activate()
' primjer korisnicki definisanog tipa
Dim MyRecord As EmployeeRecord
MyRecord.ID = 1
MyRecord.Name = "Markovic Marko"
MyRecord.Address = "Kralja Petra I 123"
MyRecord.Phone = "065/123-456"
Form1.Print "ID = " + Str(MyRecord.ID)
Form1.Print "Name = " + MyRecord.Name
Form1.Print "Address = " + MyRecord.Address
Form1.Print "Phone = " + MyRecord.Phone
Form1.Print
' primjer deklaracije i upotrebe stringa fiksne duzine
Dim sFixed As String * 10
sFixed = "12345"
Form1.Print sFixed + "67890"
Form1.Print
' primjer gubitka preciznosti u radu sa Currency promjenljivima
Dim Valuta As Currency, Rezultat As Currency
Valuta = 123.4567
Form1.Print Str(Valuta)
Rezultat = Valuta * 0.0209
Form1.Print "123.4567 * 0.0209 = " + Str(Rezultat)
Rezultat = Valuta * 0.020901
Form1.Print "123.4567 * 0.020901 = " + Str(123.4567 * 0.020901) + " a Rezultat=" + Str(Rezultat)
Form1.Print
' primjer razlicitih formata datuma i vremena pri promjeni Regional Settings-a
Form1.Print Now ' ispisuje datum i trenutno vrijeme (Long Time settings)
Form1.Print Date ' ispisuje tekuci datum
Form1.Print Time ' ispisuje trenutno vrijeme (Long Time settings)
Form1.Print
' primjer upotrebe Variant tipa
Dim Temp As Variant
Temp = Now
Temp = 1
Temp = "Ovo je string"
Form1.Print Temp
Form1.Print
' primjer upotrebe Typename funkcije
Dim NullVar, MyType, StrVar As String, IntVar As Integer, CurVar As Currency
Dim ArrayVar(1 To 5) As Integer
NullVar = Null ' Assign Null value.
Form1.Print TypeName(StrVar) ' Returns "String".
Form1.Print TypeName(IntVar) ' Returns "Integer".
Form1.Print TypeName(CurVar) ' Returns "Currency".
Form1.Print TypeName(NullVar) ' Returns "Null".
Form1.Print TypeName(ArrayVar) ' Returns "Integer()".
Form1.Print
End Sub
VJEBA 23: Deklarisati jedan staticki Staticki i jedan dinamiki Dinamicki niz stringova. U dogaaju Form_Load dodijeliti proizvoljne vrijednosti svim lanovima niza Staticki. U dogaaju Form_Activate ispisati vrijednosti nekoliko lanova niza Staticki, ispisati donju i gornju granicu prije i nakon redimenzioniranja niza Dinamicki sa 3 na 2 i ispisati vrijednost lana Dinamicki(3) prije i poslije redimenzioniranja.UPUTSTVO:Form1.frmOption Explicit
Dim Staticki(1 To 10) As String, Dinamicki() As String
Private Sub Form_Load()
Staticki(1) = "jedan"
Staticki(2) = "dva"
Staticki(3) = "tri"
Staticki(4) = "cetiri"
Staticki(5) = "pet"
Staticki(6) = "sest"
Staticki(7) = "sedam"
Staticki(8) = "osam"
Staticki(9) = "devet"
Staticki(10) = "deset"
ReDim Dinamicki(1 To 3)
Dinamicki(1) = "1"
Dinamicki(2) = "2"
Dinamicki(3) = "3"
End Sub
Private Sub Form_Activate()
Form1.Print Staticki(3)
Form1.Print Staticki(6)
Form1.Print Staticki(9)
Form1.Print Staticki(2) + " " + Staticki(5)
Form1.Print Dinamicki(3)
Form1.Print "LBound(Dinamicki)=" + Str(LBound(Dinamicki)) + " a UBound(Dinamicki)=" + Str(UBound(Dinamicki))
ReDim Dinamicki(1 To 2)
Form1.Print "LBound(Dinamicki)=" + Str(LBound(Dinamicki)) + " a UBound(Dinamicki)=" + Str(UBound(Dinamicki))
Form1.Print Dinamicki(3)
End Sub
VJEBA 24: Deklarisati promjenljivu tipa String pa demonstrirati funkcije: Trim, LTrim, RTrim, Left, Right, Mid, Len i InStr.
UPUTSTVO:Option Explicit
Private Sub Form_Activate()
Dim Tekst As String
Tekst = " Dobrodosli na vjezbe izOsnove programiranja "
Form1.Print "x" + Tekst + "x - Tekst"
Form1.Print "x" + Trim(Tekst) + "x - Trim(Tekst)"
Form1.Print "x" + LTrim(Tekst) + "x - LTrim(Tekst)"
Form1.Print "x" + RTrim(Tekst) + "x - RTrim(Tekst)"
Form1.Print "x" + Left(Tekst, 13) + "x - Left(Tekst, 13)"
Form1.Print "x" + Right(Tekst, 16) + "x - Right(Tekst, 16)"
Form1.Print "x" + Mid(Tekst, 18, 6) + "x - Mid(Tekst, 18, 6)"
Form1.Print "x" + Str(Len(Tekst)) + "x - Str(Len(Tekst))"
Form1.Print "x" + Str(InStr(Tekst, "vjezbe")) + "x - Str(InStr(Tekst,'vjezbe'))"
End Sub
MODUL 7: Kontrola toka programaIF THEN ELSE narebaIf naredba se koristi kada je potrebno izvriti jednu ili grupu naredbi u zavisnosti od vrijednosti uslova koji se ispituje.Sintaksa jednostavne If naredbe je:
If condition Then [statements] [Else elsestatements]
If naredba moe se koristiti za provjeravanje vie vrijednosti:
If condition Then [statements][ElseIf condition-n Then [elseifstatements] ...[ElseIf condition-n Then [elseifstatements] ...[Else [elsestatements]]End If
condition su izrazi koji treba da rezultuju logikim vrijednostima True ili False.[elseifstatements] , [statements] predstavljaju jednu naredbu ili grupu naredbi koje e se izvriti.Broj ElseIf kaluzula u jednoj If naredbi nije ogranien.
Else i ElseIf klauzule su opcione.
Primjer:
Dim Number, DigitsNumber = 53If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
U If klauzulama se mogu ispitivati vrijednosti razliitih iskaza:If I < 0 Then
[blok naredbi 1]ElseIf J > 100 Then
[blok naredbi 2]Else
[blok naredbi 3]End If
If naredbe se mogu ugnijezditi:If Mjesec = 1 Or Mjesec = 2 Then
Doba = zima
ElseIf Mjesec = 3 Then
If Dan < 21 Then
Doba = zima
Else
Doba = proljece
EndIf
ElseIf Mjesec = 4 Or Mjesec = 5 Then
Doba = proljece
ElseIf Mjesec = 6 Then
If Dan < 21 Then
Doba = proljece
Else
Doba = ljeto
EndIf
ElseIf Mjesec = 7 Or Mjesec = 8 Then
Doba = ljeto
ElseIf Mjesec = 9 Then
If Dan < 23 Then
Doba = ljeto
Else
Doba = jesen
EndIf
ElseIf Mjesec = 10 Or Mjesec = 11 Then
Doba = jesen
ElseIf Mjesec = 12 Then
If Dan < 21 Then
Doba = jesen
EndIf
Else
Doba = zima
End IfSELECT CASE naredbaSelect Case naredba omoguava izvravanje tano jedne naredbe (ili grupe naredbi) u zavisnosti od vrijednosti od vrijednosti izraza koja se ispituje.Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
testexpression je iskaz ija vrijednost se ispituje.
[statements-n] su naredbe ili grupe naredbi koje se izvravaju ukoliko je vrijednost iskaza testexpression jednaka vrijednosti expressionlist-n.
Ukoliko ni jedna grupa naredbi nije izvrena, tj. ako vrijednost testexpression ne odgovara ni jednoj vrijednosti statements-n izvrie se, ukoliko je naveden, blok naredbi elsestatements.Broj Case klauzula u jednoj Case naredbi nije ogranien.Koja je razlika izmeu If i Case naredbe? U If, ElseIf klauzulama se mogu testirati vrijednosti razliitih iskaza dok se u Case naredbi ispituju razne vrijednosti samo jednog izraza testexpression.
U Case klauzulama je mogue navesti vie vrijednosti ili opsega (koji se odvajaju zarezima).Case naredbe mogue je ugnijezditi.
Primjer:
Select Case OcjenaCase 5
Slovima = petCase 6
Slovima = sestCase 7
Slovima = sedamCase 8
Slovima = osamCase 9
Slovima = devetCase 10
Slovima = desetCase Else
Slovima = greskaEnd Select
Primjer:
Select Case OcjenaCase 1 To 5Select Case Ocjena
Case 5
Slovima = odlican (srednja i osnovna), nije poloio (fakultet)
Case 4
Slovima = vrlodobar
Case 3
Slovima = dobar
Case 2
Slovima = dovoljan
Case 1
Slovima = nedovoljan
End Select
Case 6 To 10
Select Case Ocjena
Case 5 iako nije logino nije ni pogreno
Slovima = pet
Case 6
Slovima = sest
Case 7
Slovima = sedam
Case 8
Slovima = osam
Case 9
Slovima = devet
Case 10
Slovima = deset
End Select
Case ElseSlovima = greska
End SelectPrimjer:
Select Case BrojCase 1 To 5, 6 To 10
Slovima = ocjena iz osnovne, srednje, sa fakulteta ili broj bodova
Case Is > 11, Is 11, Is Components i selektujemo eljenu kontrolu.
RichTextBox kontrolaOvu kontrolu koristimo kada elimo da kreiramo ili mijenjamo .rtf tekstualne fajlove koji osim podataka o tekstu sadre i podatke o stilu. Kontrolu je mogue postaviti na formu ukoliko prije toga sa Project -> Components menija omoguimo upotrebu kontrole Microsoft Rich Textbox Control 6.0 (SP6) (ako je instalran Service Pack 6 za Visual Basic 6).
Podaci koje uva RichTextbox kontrola uitavaju se iz fajla i snimaju u fajl metodama LoadFile i SaveFile.
Calendar i MSChart kontrolaNeke od kontrola koje nisu podrazumijevano dostupne u razvojnom okruenju Visual Basic-a su Calendar i MSChart kontrola.
Calendar kontrola moe se korititi za izbor datuma. Za razliku od unosa datuma u TextBox kontroli, Calendar kontrola omoguava grafiki interfejs za izbor datuma kao i jednostavniji izbor mjeseca i godine.
Najvanije svojstvo ove kontrole je podrazumijevano svojstvo Value koje uva vrijednost odabranog datuma.
MSGrid kontrola omoguava grafiki prezentaciju podataka u obliku grafikona. Najvanija svojstva ove kontrole su:
1. chartType ijim izborom se omoguava razliita prezentacija podataka,
2. columnCount koje predstavlja broj kolona serija u grafikonu,3. rowCount koje predstavlja broj redova serija u grafikonu,
4. Data predstavlja vrijednost koja se prikazuje,
5. ShowLegend omoguava prikazivanje legende (nazive serija tj. osa)
Upravljanje programskim referencamaSlino kontrolama, moe se ukazati potreba za upotrebom razliitih procedura i funkcija koje se nalaze u bibliotekama. Da bi smo omoguili njihovo koritenje potrebno je da u program ukljuimo odreene reference. To postiemo odaborom referenci (biblioteka) u References dijalogu do kog dolazimo prekoProject->References opcije glavnog menija.
Npr. ukoliko elimo da koristimo ovezivanje sa bazama podataka bie potrebno da ukljuimo referencu na Data Accesss Object.Podrazumijevana forma aplikacije i procedura MainVeina primjera koji su do sada koriteni bili su zasnovani na formama tj. prilikom kreiranja svakog projekta koristili smo podrazumijevanu formu a to je forma koja se automatski kreira pri pokretanju novog projekta.U toku pravljenja aplikacije mogue je promijeniti ovo svojstvo i prilikom aplikacije inicijalno otvoriti neku drugu formu. Ovo podeavanje vri se izborom forme sa padajue liste startup Object u dijalogu Project Properties do kog se dolazi sa glavnog menija Project imeprojekta Properties.
Mogue je da objekat od kog e aplikacija poeti izvravanje ne bude neka od formi ve procedura Sub Main. Procedura sa ovakvim nazivom (koju kreira korisnik) je specifina ba po tome to je to jedina procedura sa kojom je mogue poeti izvravanje aplikacije.Iz procedure Sub Main mogue je otvoriti druge forme i kontrolisati tok izvravanja programa ali i napraviti program koji ne biti baziran na korisnikom interfejsu. Tipini primjeri upotrebe ovakvog naina pokretanja aplikacije su: prikazivanje Splashscreen prozora sa informacijama o programu, autoru, pravima upotrebe programa,
mogunost izvravanja koda za povezivanje sa bazom podataka,
prijavljivanje korisnika za rad u programu,
Rad sa tekstualnim fajlovima otvaranje, zatvaranje, itanje i upisSintaksa naredbe za otvaranje fajlova:
Open pathname For mode [Access access] [lock] As [#]filenumber
gdje mode moe da ima neku od vrijednosti: Append, Binary, Input, Output, or RandomSintaksa naredbe za zatvaranje fajla je:
Close [filenumberlist]
Sintaksa naredbe za upisivanje podataka u otvoreni fajl je:Print #filenumber, [outputlist]
gdje je outputlist lista vrijednosti odvojenih razmacima ili taka-zarezom; u listi vrijednosti je mogue koristiti jedan ili vie razmaka i/ili tabulatora upotrebom funkcija Spc() i Tab().
Sintaksa naredbi za itanje podataka iz otvorenog fajla je:
Input #filenumber, varlistLine Input #filenumber, varnamepri emu se Input naredba koristi kada se podaci itaju u listu promjenljivih a LineInput kada se podaci iz jedne linije itaju u jednu promjenljivu.
Primjer upisivanje podataka u fajl:
' otvaranje/kreiranje fajla proba.txt radi upisivanja
Open App.Path & "\proba.txt" For Output As #1
Print #1, "This is a test" ' tekst
Print #1, ' prazna linija
Print #1, "tekst1 1"; Tab; "tekst 2" ' dva stringa razdvojena tabulatorom
Print #1, "Zdravo"; " "; "svijete" ' dva stringa razdvojena razmakom
Print #1, Spc(5); "5 vodecih razmaka"
Print #1, Tab(10); "Zdravo" ' stampa rijec od pozicije 10
Close #1
MsgBox ("Upisivanje u fajl proba.txt zavrseno !!!")Primjer itanje podataka iz fajla:
Open App.Path & "\proba.txt" For Input As #1
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Input #1, a, b, c
MsgBox (a): MsgBox (b): MsgBox (c)
Close #1SINTAKSA
Komentari u VB koduKomentare u Visual Basic kodu koristimo kako bi smo pojasnili neke linije ili blokove koda. Za komentarisanje se navode jednostruki navodnici . Zakomentarisati se moe itava linija ili tekst koji slijedi iza Visual basic naredbi.Za komentarisanje se moe koristiti i Rem naredba. Za razliku od komentara u formi jednostrukih navodnika ova naredba je ravnopravna sa ostalim naredbama i vae sva pravila kao i za ostale naredbe. Nema efekta na izvravanje aplikacije.
ovo je komentar u citavoj liniji
Load Form1 a ovo je komentar nakon naredbe
Prenoenje koda u sledei redest sluaj je da se neki niz instrukcija ne moe napisati tako da je vidljiv u jednom redu. U tom sluaju mogue je koristiti oznaku za prenoenje koda u sledei red _ .
Open App.Path & "\proba.txt" _
For Output As #1Vie naredbi u jednoj liniji kodaAko iz nekog razloga elimo u jednoj liniji napisati vie instrukcija onda ih odvajamo dvotakom : .Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
OPCIJE EDITORA TEKSTA
Code Settings
Auto Syntax Check da li VB automatski treba da verifikuje ispravnost sintakse nakon prelaska u novi red ili ne
Require Variable Declaration da li VB treba automatski, na poetku svakog modula, treba da doda naredbu Option Explicit koja e zahtijevati obaveznu deklaraciju promjenljivih
Auto List Members da li VB automatski treba da predloi moguu listu opcija (svojstava i metoda)
Auto Quick Info da li VB treba da prikazuje informacije o funkcijama i njihovim parametrima
Auto Data Tips da li da se tokom dibagovanja programa u Break modu prozora za pisanje koda, iznad promjenljivih ispisuju trenutne vrijednosti u trenutku prekida izvravanja koda
Auto Indent dozvoljava da poravnanje tekue linije obezbjeuje isto poravnanje i za sledee linije koda
Tab Width podrazumijevana irina tabulatora (izmeu 1 i 32, podrazumijevano 4)
Window Settings
Drag-and-Drop Text Editing dozvoljava prevlaenje koda izmeu Code, Immediate i Watch prozora
Default to Full Module View podrazumijevani izgled moda prozora koda je lista procedura / funkcija koja se moe skrolovati (nasuprot tome je prikaz samo jedne procedure / funkcije)
Procedure Separator odreuje da li e se prikazivati separator (linija) procedura i funkcijaVJEBE: Forme, kontrole i kodiranje napredne tehnike
Cilj vjebe
Cilj ove vjebe je upoznavanje studenata sa naprednim tehnikama kreiranja korisnikog interfejsa, upotrebom novih kontrola, upotrebom kontrola i koda iz biblioteka preuzetih od drugih programera, kao i upoznavanje sa nekim specifinostima pisanja koda i koritenja editora koda.VJEBA 29: Kreirati aplikaciju koja iz glavne forme form1 poziva formu Form2 na nain da prije prikazivanja druge forme izmijeni neka od njenih svojstava.
UPUTSTVO:Private Sub Command1_Click()
MsgBox ("Prije Load Form2")
Load Form2
MsgBox ("Nakon Load Form2, a prije Form2.Show")
Form2.Caption = "Izmjena podataka u formi Form2"
Form2.Status = "izmjena"
Form2.Show
MsgBox ("Nakon Form2.Show")
End Sub
Private Sub Command2_Click()
Load Form2
Form2.Caption = "Unos novih podataka u formi Form2"
Form2.Status = "unos"
Form2.Show
End Sub
VJEBA 30: Kreirati aplikaciju koja e omoguiti uitavanje i izmjenu sadraja odabranog .rtf fajla (odabir se vri FileOpen CommonDialog kontrolom). Nakon izmjene sadraja fajla korisniku omoguiti da tekst snimi u .rtf fajl. Obezbijediti mogunost promjene fonta, veliine slova i stila (bold, italik).UPUTSTVO:
Private Sub Command1_Click()
Dim strOpen As String
dlgBox.ShowOpen
strOpen = dlgBox.FileName
rtfData.LoadFile strOpen
End Sub
Private Sub Command2_Click()
Dim strNewFile As String
dlgBox.ShowSave
strNewFile = dlgBox.FileName
rtfData.SaveFile strNewFile
End Sub
Private Sub Command3_Click()
dlgBox.ShowFont
rtfData.Font.Name = dlgBox.FontName
rtfData.Font.Size = dlgBox.FontSize
rtfData.Font.Bold = dlgBox.FontBold
rtfData.Font.Italic = dlgBox.FontItalic
End Sub
VJEBA 31: Demonstrirati upotrebu niza kontrola. Na glavnoj formi postaviti nekoliko TextBox i nekoliko Label kontrola. Obraditi Change dogaaj TextBox kontrola i Click dogaaj Label kontrola tako da se izazove promjena u sadraju samih kontrola. Promijeniti Text i Caption svojstva kontrola upotrebom For Each petlje.UPUTSTVO:
Private Sub Command1_Click()
Dim Kontrola As Variant
For Each Kontrola In Text1
Kontrola.Text = "tekst"
Next
End Sub
Private Sub Command2_Click()
Dim Kontrola As Variant
For Each Kontrola In Label1
Kontrola.Caption = "tekst"
Next
End Sub
Private Sub Label1_Click(Index As Integer)
Label1(Index) = "labela"
End Sub
Private Sub Text1_Change(Index As Integer)
MsgBox ("Pritisnuli ste textbox sa indeksom " + Str(Index))
End Sub
VJEBA 32: Kreirati jednostavnu aplikaciju koja sadri po jednu Calendar i MSChart kontrolu. Napisati kod koji e prikazati trenutno odabran datum u Calendar kontroli. Napisati kod koji e prikazati podatke u dijagramu kao na slici.
UPUTSTVO:
Private Sub Command1_Click()
MsgBox (Str(Calendar1.Value))
End Sub
Private Sub Command2_Click()
With MSChart1
' Displays a 3d chart with 8 columns and 8 rows data
.chartType = VtChChartType3dBar
.ColumnCount = 8
.RowCount = 8
For Column = 1 To 8
For Row = 1 To 8
.Column = Column
.Row = Row
.Data = Row * 10
Next Row
Next Column
.ShowLegend = True
End With
End Sub
VJEBA 33: Napisati aplikaciju kojoj e inicijalni objekat pri pokretanju, umjesto forme, biti procedura Sub Main. U proceduri Sub Main pitati korisnika da li eli ui u program. Ako eli prikazati formu Form1. Ako ne eli napustiti program.
VJEBA 34: Napisati aplikaciju koja e demonstrirati kreiranje / otvaranje tekstualne datoteke, upisivanje u nju, itanje iz tekstualne datoteke i zatvaranje.
UPUTSTVO:
Sub Main()
Dim linijaTeksta As String, a As String, b As String, c As String
' otvaranje/kreiranje fajla proba.txt radi upisivanja
Open App.Path & "\proba.txt" For Output As #1
Print #1, "This is a test" ' tekst
Print #1, ' prazna linija
Print #1, "tekst1 1"; Tab; "tekst 2" ' dva stringa razdvojena tabulatorom
Print #1, "Zdravo"; " "; "svijete" ' dva stringa razdvojena razmakom
Print #1, Spc(5); "5 vodecih razmaka"
Print #1, Tab(10); "Zdravo" ' stampa rijec od pozicije 10
Print #1, "jedan, dva, tri"
Close #1
MsgBox ("Upisivanje u fajl proba.txt zavrseno !!! Slijedi citanje !!!")
Open App.Path & "\proba.txt" For Input As #1
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Line Input #1, linijaTeksta: MsgBox (linijaTeksta)
Input #1, a, b, c
MsgBox (a): MsgBox (b): MsgBox (c)
Close #1
End Sub
MODUL 10: Otklanjanje greaka i rukovanje grekamaTokom pisanja programa mogue je napraviti greke.
Prema prirodi greaka moemo ih podijeliti na:
sintaksne ili
logike
Prema vremenu pojavljivanja i otkrivanja greke moemo podijeliti na:
greke koje e se pojaviti tokom kompajliranja i linkovanja tj kreiranja same aplikacije i na
greke koje e se pojaviti u toku izvravanja programa
Primjeri sintaksnih greaka:Prezime = Let( PunNaziv, 10)Prezime = Left( PunNaziv)
Prezime = Left( PunNaziv, Ime)
If Jedan1 F(x,n) =
1 za n=0
7. Napisati rekurzivnu funkciju za raunanje sume kubova: n3+(n-1)3++23+13
8. Napisati rekurzivnu funkciju za raunanje Fibonaijevih brojeva
n1 = 1, n2 = 1, ni = ni-1 + ni-21, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
9. Napisati rekurzivnu funkciju koja e omoguiti da se tekst koji se unosi rije po rije upotrebom InputBox funkcije ispie u obrnutom redoslijedu.
10. Napisati program koji rauna sumu kvadrata prirodnih brojeva:
22+42+62+82++(2n)2
Koristiti: Do While Loop, Do Loop While, Do Until Loop, Do Loop Until i For petlje1.
Option Explicit
Option Base 1
Private Sub Main()
Dim Niz() As Integer, Duzina As Integer, I As Integer, J As Integer, Temp As Integer
Duzina = InputBox("Unesite broj elemenata niza:", "Nizovi")
ReDim Niz(Duzina)
For I = 1 To Duzina
Niz(I) = InputBox("Unesite " + Str(I) + ". element niza - cijeli broj:", "Unos elemenata niza")
Next I
For I = 1 To Duzina
For J = I + 1 To Duzina
If Niz(J) < Niz(I) Then
Temp = Niz(I): Niz(I) = Niz(J): Niz(J) = Temp
End If
Next J
Next I
For I = 1 To Duzina
MsgBox (Str(I) + ". element niza je " + Str(Niz(I)))
Next I
End Sub2.
Option Explicit
Option Base 1
Private Sub Main()
Dim Niz() As String, Duzina As Integer, I As Integer, J As Integer, Temp As String
Duzina = InputBox("Unesite broj elemenata niza:", "Nizovi")
ReDim Niz(Duzina)
For I = 1 To Duzina
Niz(I) = InputBox("Unesite " + Str(I) + ". element niza - string:", "Unos elemenata niza")
Next I
For I = 1 To Duzina
For J = I + 1 To Duzina
If Niz(J) < Niz(I) Then
Temp = Niz(I): Niz(I) = Niz(J): Niz(J) = Temp
End If
Next J
Next I
For I = 1 To Duzina
MsgBox (Str(I) + ". element niza je " + Niz(I))
Next I
End Sub3.
Option Explicit
Private Sub Main()
Dim A As Single, B As Single, C As Single, Diskriminanta As Single
A = InputBox("A = ", "Kvadratna jednacina")
B = InputBox("B = ", "Kvadratna jednacina")
C = InputBox("C = ", "Kvadratna jednacina")
Diskriminanta = B ^ 2 - 4 * A * C
If Diskriminanta > 0 Then
MsgBox ("X1 = " + Str((-B + Sqr(Diskriminanta)) / (2 * A)))
MsgBox ("X2 = " + Str((-B - Sqr(Diskriminanta)) / (2 * A)))
ElseIf Diskriminanta = 0 Then
MsgBox ("X1 = X2 = " + Str(-B / (2 * A)))
ElseIf Diskriminanta < 0 Then
MsgBox ("X1 = " + Str(-B / (2 * A)) + " + i * " + Str(Sqr(-Diskriminanta) / (2 * A)))
MsgBox ("X2 = " + Str(-B / (2 * A)) + " - i * " + Str(Sqr(-Diskriminanta) / (2 * A)))
End If
End Sub4.
Option Explicit
Option Base 1
Private Sub Main()
Dim Niz() As Integer, Duzina As Integer, Proizvod As Long, X As Variant, I As Integer
Duzina = InputBox("Unesite broj elemenata niza:", "Nizovi")