269
Dr Tihomir Latinović Osnove Programiranja (Visual Basic) Banja Luka, 2007

Visual Basic - Osnove Programiranja

Embed Size (px)

DESCRIPTION

Visual Basic - Osnove Programiranja

Citation preview

Dr Tihomir Latinovi ć

Osnove Programiranja (Visual Basic)

Banja Luka, 2007

1

Edicija: Informacione tehnologije Naziv publikacije: Osnove programiranja (Visual Basic) Autor: Dr Tihomir Latinović Docent, Mašinski fakultet, Univerzitet u Banjoj Luci [email protected] Recenzenti: Dr Danilo Obradović Red. Prof. Fakultet Tehničkih Nauka, Novi Sad Dr Krstan Bošnjak Red. Prof. Elektrotehnički Fakultet, Univerzitet u Banjoj Luci Dizajn Korica: Ninković Dragomir [email protected] Izdavač: Besjeda, Banjaluka Mr Novaković Nenad [email protected] Štampa: Grafid, Banjaluka Tiraž: 400 primjeraka Štampanje knjige je pomoglo Ministarstvo Prosvjete, Grad Banjaluka, Mašinski Fakultet u Banjoj Luci, BLC Koledž

2

Predgovor.................................................................................................................. 1

1. Osnove programiranja ......................................................................................... 2

1.1. Definisanje problema........................................................................................ 2

1.2. Izrada algoritma................................................................................................ 3

Primjer 1.1 Algoritam za množenje dva broja ........................................................ 3

1.3. Pisanje i unošenje programa u računar .......................................................... 5

1.4 Algoritamske strukture ...................................................................................... 5

1.5. Linijska struktura.............................................................................................. 5

Primjer 1.2. Algoritam za izračunavanje funkcije: ................................................. 5

1.6. Razgranata struktura ........................................................................................ 6

Primjer 1.3.:Algoritam razgranate strukture.......................................................... 6

1.7. Cikličke strukture.............................................................................................. 7

Primjer 1.4.Algoritam za odreživanje najvećeg broja iz niza brojeva.................... 7

1.8 Podjela programskih jezika ............................................................................... 9

1.9 Kratka istorija jezika za programiranje .......................................................... 10

1.10. Da li je budućnost jezika za programiranje već počela? ............................. 11

2. Uvod u Visual Basic i njegovo okruženje.......................................................... 12

2.1 Zašto programirati u VisualBasic -u............................................................... 13

2.2 Izdanja Visual Basica ...................................................................................... 14

2.3 Instaliranje Visual Basica ............................................................................... 14

2.4 Prije pokretanja Setup aplikacije .................................................................... 15

2.5 Principi strukturnog programiranja ............................................................... 15

2.6 Ciljevi knjige..................................................................................................... 18

2.7 Šta je Visual Basic?.......................................................................................... 19

Sl. 1 Procesiranje dogañaja u Visual Basicu ........................................................ 19

2.8 Struktura Visual Basic Aplikacije ................................................................... 20

Sl. 2 Struktura koda Visual Basic-a ...................................................................... 20

2.9 Konstante u VB-u............................................................................................. 21

3

2.10 Promenljive u VB-u........................................................................................ 21

Tabela 2.1 ............................................................................................................... 21

2.11 Izraz u VB-u.................................................................................................... 22

2.12 Pravila deklarisanja promenljivih .................................................................. 23

2..13 Naredba dodele (obrade)............................................................................... 24

2.14 Koraci u razvoju aplikacije ............................................................................ 25

2.15 Pokretanje VB 6.0 i opis njegova okruženja ................................................. 27

Sl.4 Okvir za dialog New Project ........................................................................... 27

2.116 Elementi okruženja ...................................................................................... 29

Sl. 6 Opcije trake s alatima (Toolbar) ................................................................... 29

Sl. 7 Paleta prečica i podešavanja ......................................................................... 30

2.17 Prozor Alata (ToolBox).................................................................................. 31

2.18 Sistem padajućih menija................................................................................ 36

2.19 Kreiranje prvog programa ............................................................................ 40

Primjer 2.1 Štoperica ............................................................................................ 47

2.20 Postavljanje osobina u trenutku starta.......................................................... 50

2.21 Varijable ......................................................................................................... 52

Primjer 2.2 Kalendar.............................................................................................. 58

Primjer 2.3 ZBRAJANJE DVAJU BROJEVA..................................................... 60

Primjer 2.4 SKRIVANJE - OTKRIVANJE OBJEKATA..................................... 66

2.22 Visual Basic jezik ........................................................................................... 70

2.23 Visual Basic Funkcije.................................................................................... 71

Primjer 2.5 Kalendar............................................................................................. 72

Primjer 2.6 Mjerač Temperature.......................................................................... 74

Primjer 2.7 Fleš Kartica......................................................................................... 76

Primjer 2.8 Narudžba Pica ................................................................................... 80

Primjer 2.9 Program za Crtanje .......................................................................... 83

Primjer 2.10 Studentov Profil ............................................................................... 89

4

Primjer 2.11 Planer Leta ...................................................................................... 95

2.24 Kreiranje složenijeg programa – kalkulator ................................................. 97

2.26 Funkcije pretvaranja tipova podataka ........................................................ 101

3. Visual Basic Alati nastavak ............................................................................. 103

3.1 Poruka ( Poruka Box).................................................................................... 103

3.2 Komandna dugmad (Command button) ....................................................... 107

3.3 Labele (Label Boxes)...................................................................................... 108

3.4 Tekst okvir ...................................................................................................... 109

Primjer 3.1 Unos Šifre ......................................................................................... 110

3.5 Okvir za provjeru (Check Boxes)................................................................... 112

3.6 Opcijsko dugme (Option button): .................................................................. 113

3.7 Polja................................................................................................................ 113

3.8 Kontrolna polja (Control Arrays).................................................................. 114

3.9 Okviri (Frames).............................................................................................. 114

Primjer 3.2 Narudžba Pica .................................................................................. 115

3.10 List Okviri (List Boxes) ................................................................................ 121

3.11 Kombo okvir (Combo Boxes)....................................................................... 122

Primjer 3.3 Program za kreiranje narudžbe automobila .................................. 123

3. Dodatna objašnjenja Visual Basic Alatki (Toolbox) ..................................... 136

3.1 Linijske alatke (Line Tool) ............................................................................ 137

3.2 Horizontalni i vertikalni klizači (Horizontal and Vertical Scroll Bars) ...... 138

Primjer 3.4 Konverzija temperature .................................................................... 140

3.3 Okviri Slike (Picture Boxes) .......................................................................... 144

3.4 Okvir za crtež (Image Boxes)......................................................................... 146

3.5 Okvir za prikaz Drajva (Drive List Box)........................................................ 146

3.6 Okvir za prokaz direktorija (Directory List Box) .......................................... 147

3.7 Okvir za prikaz datoteka (File List Box) ....................................................... 147

Primjer 3.5 Pregled slika ..................................................................................... 148

5

3.8 Okvir za zajednički dijalog windowsa (Common Dialog Boxes) ................. 152

3.9 Kratki primjer:............................................................................................... 154

Primjer 3.6 Studentska služba ............................................................................ 156

4. Kreiranje samostalne aplikacije ...................................................................... 165

4.1 Korišćenje podprograma (General Sub Procedures) u aplikaciji ................ 166

4.2 Korištenje funkcijskih pod-programa u vašoj aplikaciji .............................. 168

4.3 Kratak Primjer: Konverzija Temperature .................................................... 169

4.4 Dodavanje Menija Aplikaciji ......................................................................... 170

Primjer 4.1 Jednostavan Editor teksta ................................................................ 174

4.5 Korišćenje menija koji iskače (Pop-Up)....................................................... 178

4.6 Dodavanje sličica (Icons) formi: ................................................................... 179

4.7 Crtanje i promjena vlastitih sličica (Icons): ................................................ 179

4.8 Kreiranje Visual Basic izvršnog fajla............................................................ 181

Primjer 4.2 Tekst Editor – Stvaranje instalacionog fajla za distribuciju aplikacije i dodjeljivanje sličice aplikaciji............................................................................ 182

4.9 Korišćenje paketa za kreiranje instalacionog paketa (Visual Basic Package & Deployment Wizard)............................................................................................. 182

Primjer 4.3 Tekst editor – Kreiranje distribucionog diska ................................. 184

5. Grafičke tehnike u Visual Basic-u .................................................................. 186

5.1 Grafičke metode ............................................................................................. 186

5.2 Korištenje Boja............................................................................................... 192

5.3 Dogañaji uzrokovani klikom miša................................................................. 194

Primjer 5.1 Crna Kutija ....................................................................................... 196

5.4 Dogañaji prevlačenja i prenošenja (Drag and drop) .................................... 199

Primjer 5.2 Isporuka pisma ................................................................................. 201

5.5 Tajmer (Timer) alati i kašnjenja .................................................................. 203

5.6 Animacijske Tehnike...................................................................................... 205

5.7 Brzi primjer: Jednostavna animacija............................................................ 205

6

Primjer 5.3: Animacija sa tajmer alatkom.......................................................... 206

5.8 Slučajni brojevi koji se koriste u igrama....................................................... 208

5.9 Slučajno sortiranje N cijelih brojeva............................................................. 209

Primjer 5.4 Jednoruki Džek................................................................................. 209

6. Rad sa bazama podataka.................................................................................. 215

6.1 Uvod u baze podataka .................................................................................... 215

6.2 Struktura baze podataka i terminologija....................................................... 215

6.3 ADO kontrola podataka................................................................................. 219

6.4 Veze podataka................................................................................................. 220

6.5 Dodjeli tabele.................................................................................................. 221

6.6 Vezani alati podataka..................................................................................... 222

Primjer 6.1 Povezivanje baze podataka knjiga ................................................... 224

6.7 Kreiranje virtuelne tabele .............................................................................. 225

6.8 Jednostavan primjer: Formiranje virtuelne tabele...................................... 226

6.9 Nalaženje specifičnih zapisa.......................................................................... 227

Primjer 6.2 Pretraživanje baze knjiga ................................................................. 229

6.10 Menadžer podataka ...................................................................................... 231

Primjer 6.3 Telefomski imenik kreiranje baze.................................................... 232

6.11 Održavanje baze podataka ........................................................................... 233

6.12 Dodatne podesive kontrole podataka........................................................... 238

6.13 Kreranje izvještaja iz podataka.................................................................... 241

Primjer 6.4 Telefonski imenik – Kreiranje izvještaja ......................................... 242

6.14 Kreirajte pisani izvještaj............................................................................... 243

6.15 Pristupite Izvještaju...................................................................................... 244

Primjer 8.1 Jednosatavan primjer: Korišćenje If ... Then ... Else strukture. .... 246

Primjer 8.2 Na ulazu se unose dva slova . Ustanoviti da li su slova po abecednom redosledu............................................................................................................... 248

Primjer 8.3 Napisati program koji nalazi najmanji od tri učitana broja........... 249

7

Primjer 8.4 Napisati program koji nalazi najveći od tri učitana broja.............. 250

Primjer 8.5 Napisati naredbu uslovnog prelaska kojom se za dato x izračunava y po formuli:............................................................................................................ 251

Primjer 8.6 Napisati naredbu uslovnog prelaska kojom se za zadato x izračunava y po formuli: ......................................................................................................... 252

Primjer 8.7: Adresar ............................................................................................ 254

LITERATURA ..................................................................................................... 259

Poglavlje 1: Osnove Programiranja

1

Predgovor

Ova knjiga je plod višegodišnjeg rada Autora kao asistenta i profesora na predmetima Informatika, Informatika u numerici, Programiranje, Osnove programiranja i niza vježbi, predavanja i kurseva iz oblasti programiranja i programskih jezika.

Radeći i kao programer na svim programskim jezicima od prve do četvrte generacije Autor je svoje znanje i iskustvo u radu , predočio u ovoj knjizi.

Radeći godinama sa različitim programskim jezicima, na različitim računarskim platformama, Autor smatra da je potrebno posvetiti mnogo više pažnje programiranju u našem obrazovnom sistemu.

Pojavom Visual Basic-a otvorio se jedan sasvim novi svijet programiranja, nastao vizuelizacijom nekadašnjeg Basic-a i uz podršku operativnog sistema Windows. Visual Basic je otvorio širom programska vrata svima onima kojima su ta vrata bila zatvorena ili djelimično otvorena.

Ova knjiga je i pokušaj Autora da populariše programiranje kao nešto što olakšava tekući život , spaja nas sa ostalim svijetom i daje nam neograničene mogućnosti. Iako je naimjenjena prevashodno studentima , ona je namijenjena i svakom onom koji želi da uñe u svijet programiranja.

Autor je u toku rada sa studentima, zaključio da su oni lakše učili i postizali puno bolje rezultate sa programskim jezikom Visual Basic, nego što je bio slučaj sa C jezikom, Paskalom i svim ostalim jezicima .

Ako vas je Autor ovom knjigom zainteresovao za svijet programiranja onda je ona postigla svoj cilj.

Banjaluka, 2007.god.

Poglavlje 1: Osnove Programiranja

2

1. Osnove programiranja

Dva su pristupa pri razvoju programske podrške - programiranja na digitalnim računarima:

a. Od računara ka problemu

b. Od problema ka računaru.

U prvom pristupu se polazi od toga da korisnik najprije upozna računar i njegove mogućnosti, a zatim pristupi rješavanju problema uz pomoć računara.

Razvoj programske podrške tj. programiranje u užem smislu predstavlja proces pisanja programa za računar. U širem smislu to je proces pripreme, razrade i pisanja programa radi rješavanja nekog problema na računaru.

Razvoj programske podrške zavisi od problema kojim se rješava. Meñutim, mogu se uvesti neki tipični postupci tj odrediti metodologija tokom razvoja programa. U programiranju uočavamo sljedeće faze:

♦ Definisanje problema

♦ Izrada algoritma

♦ Pisanje i unošenje programa u računar

♦ Testiranje programa i ispravke grešaka

♦ Implementacija programa i obuka korisnika

♦ Održavanje i dogradnja programa

Svi koraci su popraćeni sistemom dokumentacije (detaljnih opisa) formiran primjenom različitih tekst i grafičkih prikaza.

1.1. Definisanje problema

Uočava se problem, odreñuje način rješavanja, analizira postojeće stanje, analiziraju iskustva u radu na ovakvim i sličnim zadacima, biraju metode rada. U ovoj fazi rada često je neophodno definisati fizički i matematički model sistema ili procesa čije ponašanje se implementira na računaru.

Imamo 2 modela: Fizički model uvijek predstavlja model realnog sistema ili procesa koje se odvija u prirodi.

Poglavlje 1: Osnove Programiranja

3

Matemati čki model je skup matematičkih postupaka i relacija kao i puteva njihovog rješavanja, koji moraju egzaktno odrediti postavljeni fizički model. Matematički model zapravo predstavlja skup matematičkih relacija koje dovoljno tačno opisuju pojavu ili proces koji proučavamo. Najčešće se pri tome koristimo jednačinama ili sistemima jednačina, nejednačina ili sistemima nejednačina, različitim transformacijama, funkcijama, vektorima, matricama i determinantama, grafovima i drugim matematičkim iskazima.

1.2. Izrada algoritma

Algoritam predstavlja tačno propisani postupak za izvršavanje, odreñenim redoslijedom, definisanih postupaka koji vode do rješenja postavljenog zadatka.

Algoritam se dizajnira primjenom dijagrama toka i pseudokoda. Algoritam i njegovo kreiranje je uvijek u vezi s postavljenim problemom tj. zadatkom koji se rješava primjenom računara.

U tom smislu se i pitamo : KAKO RIJEŠAVAMO ZADATAK ?

Najprije uočimo veze ulaznih vrijednosti i traženih rješenja. Zatim biramo one veze koje nam omogućavaju da rješenja izrazimo pomoću ulaznih veličina. Ulazne veličine, po odreñenim pravilima, transformišemo sve dok se ne doñe do rješenja. Ovakav skup pravila, definisanih s ciljem rješavanja odreñenog zadatka zove se algoritam . Svako pojedinačno pravilo, iz skupa pravila definisanih za rješavanje zadatka zove se algoritamski korak. Dakle, algoritam se sastoji od niza koraka, kroz koje se vrši transformacija ulaznih vrijednosti parametara u izlazne.

Primjer 1.1 Algoritam za množenje dva broja

Sastaviti algoritam za množenje dva proizvoljno zadana prirodna broja.

Rješenje :

Neka su ulazne veličine prirodni brojevi x i y sa vrijednostima kako slijedi :

x = 14 i

y = 3.

Pseudokod za rješavanje ovog zadatka opisuje algoritamske korake :

1. Zadaj ulazne vrijednosti za x i y.

2. Inicijaliziraj z (z = 0).

3. Povećaj z za vrijednost od x.

4. Umanji y za 1.

Poglavlje 1: Osnove Programiranja

4

5. Ispituj :

a) Ako je y # 0 idi u 3.

b) U protivnom idi na 6.

6. Ispiši z i završi.

Algoritam se predstavlja grafičkim dijagramom toka. U tom prikazu svaki algoritamski korak je iskazan odgovarajućim grafičkim simbolom. Grafički zapis algoritma naziva se algoritamska šema. Svaka algoritamska shema sadrži algoritamske korake u kojima se definišu ulazne i izlazne veličine algoritma. Algoritamske šeme u vezi s zadatkom koji se rješava mogu biti linijske, razgranate i cikličke (programske petlje).

Poglavlje 1: Osnove Programiranja

5

1.3. Pisanje i unošenje programa u ra čunar

Pisanje programa zahtijeva poznavanje jednog programskog jezika i njegovu upotrebu u rješavanju postavljenog zadatka i uspostavljenog dijagrama toka - algoritamske šeme.

1.4. Algoritamske strukture

Postoje linijske i razgranate algoritamske strukture.

1.5. Linijska struktura Svaki algoritamski korak tokom rješavanja zadataka izvršava se samo jedan put. U ovom slučaju algoritamska šema se sastoji od algoritamskih koraka ulaza, obrade i izlaza. Primjer 1.2. Algoritam za izra čunavanje funkcije : Sastavi algoritam za izračunavanje vrijednosti y koji je zadan relacijom : y = x1 * ( x2 - 3.5 * ( x3 + 2.1 * ( 4.1 - x4 )))

Poglavlje 1: Osnove Programiranja

6

1.6. Razgranata struktura

Svaki algoritamski korak izvršava najviše jedan put tokom rješavanja zadatka. Meñutim, u ovakvoj strukturi moguće su i situacije da se neki algoritamski koraci tokom rješavanja zadatka ne izvrše. U razgranatoj algoritamskoj šemi uvijek postoji jedan algoritamski korak koji omogućava grananje algoritma. Ovaj se algoritamski korak naziva uslovnim korakom odluke. Na osnovu fizičke prirode zadatka postavlja se pitanje da li je neki uslov ispunjen ili nije. U tom smislu ispunjenje uslova generiše dalji tok rješavanja. Odluka je uvijek popraćena s odgovorima "DA" ili alternativno "NE".

Primjer 1.3.:Algoritam razgranate strukture

Poglavlje 1: Osnove Programiranja

7

1.7. Cikli čke strukture

Niz algoritamsih koraka u kojem se jedan ili više algoritamskih koraka može izvršiti više od jedanput, pri jednom izvršavanju algoritma zadatka, gradi cikličnu algoritamsku šemu.

Primjer 1.4.Algoritam za odre ñivanje najve ćeg broja iz niza brojeva

Sastaviti algoritam za odreñivanje najvećeg broja iz niza zadanih realnih brojeva.

Poglavlje 1: Osnove Programiranja

8

Kad govorimo o programiranju istovremeno govorimo i o jeziku za programiranje. Poznata je klasifikacija jezika za programiranje:

Poglavlje 1: Osnove Programiranja

9

1. prva generacija - mašinski jezik

2. druga generacija - jezici višeg nivoa (simboli čki ili asemblerski jezici)

3. treća generacija - jezici visokog nivoa

4. četvrta generacija - jezici krajnjih korisnika

1. Mašinski jezik, kao što mu i ime kaže, jezik je mašine (računara) na

kojem se programira. To je jedini jezik kojeg mašina ‘razumije’ i različit je za različite računare. Ima jednostavnu sintaksu: predstavljamo ga konačnim nizom nula i jedinica.

2. Simbolički ili asemblerski jezik umjesto niza nula i jedinica koristi mnemonička imena i za operacije i za operande, pa je lakši za pisanje i razumljiviji je od mašinskog jezika. i ovaj je jezik zavisan o računaru.

3. Jezici treće generacije ili jezici visokog nivoa omogućuju pisanje programa u prirodnijoj notaciji pri čemu se ne treba baviti mnogim detaljima vezanim za specifičan računar. To su jezici koji su se pojavili od sredine pedesetih do kraja devedesetih godina dvadesetog vijeka (FORTRAN, COBOL, ALGOL, BASIC, PL/I, PASCAL, LISP, PROLOG, C, MODULA-2, itd.). Neki od njih još uvijek su u upotrebi.

4. Tek je pojavom jezika četvrte generacije stvorena alternativa profesionalnom programiranju. Karakteristika je tih jezika da su potpuno prilagoñeni krajnjim korisnicima, neprogramerima u načelu, i da se mogu naučiti veoma brzo, a da se prije toga nije ništa znalo o programiranju.

1.8 Podjela programskih jezika Generacije jezika ne treba poistovjećivati s generacijama kompjutera. Na primjer, danas su u upotrebi kompjuteri četvrte generacije na kojima nalazimo sve četiri generacije jezika za programiranje.

Osim date podjele jezika za programiranje postoje i druge. Prema jednoj od njih jezike za programiranje dijelimo prema njihovoj namjeni. Po drugoj podjeli jezici za programiranje dijele se na: � Proceduralne i � neproceduralne

Proceduralni jezik specificira kako će nešto biti izvršeno, a neproceduralni šta će biti izvršeno, ne ulazeći u detalje na koji način će to biti izvršeno. Mašinski je jezik proceduralan 100%. Za druge jezike može se govoriti o udjelu

Poglavlje 1: Osnove Programiranja

10

proceduralnosti ili neproceduralnosti. Što smo bliži jezicima četvrte generacije udio proceduralnosti je sve manji, pa se može reći da su jezici četvrte generacije gotovo 100% neproceduralni.

1.9 Kratka istorija jezika za programiranje

U kratkoj istoriji jezika za programiranje, od prvih mašinskih jezika sredinom četrdesetih godina dvadesetog vijeka do danas, njihov razvoj nije tekao linearno. Razlog za to bio je relativno spori razvoj računarske tehnike. Prvo značajnije poboljšanje jezika za programiranje bila je pojava jezika višeg nivoa ili simboličkih (asemblerskih) jezika. Ali, još uvijek je programiranje u tim jezicima bila privilegija samo malog broja specijalista, kompjuterskih stručnjaka. Uvoñenjem kompjutera treće generacije, te povećanjem kapaciteta primarne i sekundarne memorije, uvedeni su i prvi jezici treće generacije.

FORTRAN IV bio je jedan od prvih, potom slijede COBOL, LISP i ALGOL 60. U razdoblju od 1961. do 1970. godine stvoreno je još nekoliko jezika visokog nivoa: PL/I, BASIC, ALGOL 68, ADA, APL, PROLOG, SNOBOL, MODULA-2, itd. Početkom sedamdesetih godina pojavio se PASCAL, a sredinom sedamdesetih i jezik C, nova verzija jezika FORTRAN, FORTRAN 77, i LOGO.

U sedamdesetim godinama bilježimo i pravi procvat teorije programiranja. Počelo se govoriti o strukturnom programiranju. Održani su mnogi skupovi vodećih stručnjaka teorije programiranja na kojima su voñene žučne polemike na temu upotrebe naredbe GOTO, stilistici programiranja i strukturnom programiranju (Dijkstra, Wirth, Hoare i drugi). Bile su to godine kad se govorilo o “krizi softvera” i kad su se pokušali definisati novi jezici za programiranje koji bi svojom sintaksom i semantikom prevazišli postojeće stanje.

Nijedan od tadašnjih jezika za programiranje nije bio univerzalan. FORTRAN je, na primjer, bio namijenjen rješavanju numeričkih problema, COBOL za komercijalne primjene, BASIC za rješavanje problema matematike, fizike i hemije, itd. Važno je da su jezici treće generacije znatno povećali broj programera. Inženjeri i ekonomisti su mogli sami da zaplivaju u vode programiranja.

Standardizacija hardvera pojavom PC na početku osamdesetih godina postupno uvodi i standardizaciju jezika za programiranje. Poznati jezici za programiranje treće generacije doživljavaju znatna poboljšanja: pojavljuje se Borlandova verzija Pascala, Turbo Pascal, Microsoft izdaje Quick BASIC, Borland publikuje svoju verziju jezika C, itd.

Poglavlje 1: Osnove Programiranja

11

Počinju se pojavljivati jezici koji su djelomično sardžavali komponente jezika četvrte generacije. Sjećamo se “moćnog” programa za obradu teksta – Word Stara, potom Word Perfecta i Worda. Osim programa za obradu teksta, počinju se pojavljivati programski paketi za različite namjene: za matematiku MatCAD, za rad s tabelama Lotus 1-2-3 i Simphony, za crtanje AutoCAD, te programi za dizajniranje, primjene u grañevinarstvu i arhitekturi, itd.

1.10. Da li je budu ćnost jezika za programiranje ve ć počela?

Da, upravo tako: budućnost jezika za programiranje je počela! Jer, sve ono što je osobina današnjih jezika za programiranje dogodilo se u posljednjih desetak godina i još traje. Windowsi koji svojom prvom verzijom, sjećamo se, sredinom osamdesetih godina, nisu izazvali posebnu pažnju, danas su postali svjetski standard. To je natjeralo i vodeće svjetske firme za razvoj jezika za programiranje da poštuju standard Windowsa i razviju jezike za pgramiranje četvrte generacije. Neki su jezici potpuno nestali, a neki su zadržali svoje prvobitno ime uz dodatak “object” ili “visual”. Tako, na primjer, BASIC, pa Quick BASIC postaje “Visual BASIC”, jezik C postaje C++, Borlandov Pascal postaje Delphi, itd. Nastalo je takmičenje koji će od tih jezika imati što više komponenti. Pojavljuju se i posebni jezici za rad s tabelama- Excel, bazama podataka- Access, obradu teksta- Word for Windows, dizajn- Corel Draw, rad u internetu-npr. Internet Explorer.

Razvoj je jezika za programiranje, posebno u posljednjih desetak godina, doživio nagli procvat. Stvoreno je nekoliko jezika četvrte generacije koji omogućuju prilično pojednostavljeno programiranje u Windows okruženju. Time su stvorene sve pretpostavke da programiranje postane pristupačnije u mnogim strukama, posebno u društveno-humanističkim . Pojam “programiranje”, kao što je bilo izloženo u radu, ima puno šire značenje od tradicionalnog. To je sada, a i ubuduće, i projektovanje i rad s bazama podataka, s multimedijalnim ulazom i izlazom. U cilju ovoga prethodno navedenog pred vama je knjiga koja obrañuje jedan od trenutno najprihvatljivijih i najpopularnijih programskih jezika Visual Basic.

Poglavlje 2: Osnove Visual Basic-a

12

2. Uvod u Visual Basic i njegovo okruženje

Microsoft VisualBasic predstavlja jedan od najpopularnijih programskih paketa za projektovanje softvera za O.S. Windows 95/98/NT,ali i njegova verzija VisualBasic for Applications (VBA5/VBA6), koju je Microsoft ponudio kao razvojnu i platformu za izuzetno popularne programe iz paketa MS Office 97/2000, je ono čime se Visual-Basic izdvojio od ostalih paketa. Jednostavnost, koju će ostali programerski paketi teško prevazići, je jedan od razloga njegove sve veće popularnosti kod širokog kruga korisnika PC-a pod O.S. Windows.

Prvi konkurent MS VisualBasic-u je MS Visual C+ +, ali je ovaj programerski paket namijenjen za projektovanje aplikacija i programa najvišeg nivoa, odnosno onih koji predstavljaju dijelove operativnog sistema. Microsoft korporacija je, za one koji ulaze u programerske vode i žele jednostavnost i lakoću u izradi aplikacija, upravo i ponudila Visual-Basic, a za razvoj programskih paketa nalik na MS Office, rezervisala MS Visual C+ +.

VisualBasic je od 1987 godine, kada je prvi put objavljena verzija VB4D0S (VisualBasic za DOS), prošao kroz mnoge verzije. Na našim prostorima se nije ni čulo za ovaj programski jezik do njegove verzije 3.0, koja je prvi put, ponudila pristup grafičkim objektima i programiranju aplikacija za tadašnju verziju Windows-a (ver. 3.xx). Od tada se VisuaL Basic smatra najpopularnijim razvojnim okruženjem za Windows aplikacije, prevazilazeći svoje konkurente iz firme Borland (Delphi-Pascal i Borland C+ + ) po boljoj distribuciji i plasmanu na tržištu.

Sve više igara za Windows okruženje upravo se zasnivaju na programiranju procesa od strane igrača, a manje na destrukciji i sukobljavanju sa zamišljenim neprijateljem. Oni koji vole da svoj intelekt preokupiraju kreativnim mislima predstavljaju potencijalne programere. Sam matematički model za aplikaciju je zasigurno važan, ali će u ovoj knjizi biti prikazivani samo prostiji primeri.

Visual Basic je nastao od programerskog jezika Basic što znači (Beginner's All-purpose Symbolic Instruction Code). VB je nastao 1991, i napravio ga je Microsoft Corporation. Glavna osnova Visual Basic-a je da koristi graphical user interface ili skraćeno (GUI) sistem kojeg je dobio od Microsoft Windows-a krajem 1980 i pocetkom 1990. Prva verzija je imala kodno ime "Thunder". Prva verzija 1.0 je trebala da bude u istom rangu kao sto je C i C++, Pascal ili bilo koji drugi programerski jezik koji je u to vrijeme bio više nego usavršen. Medjutim prva

Poglavlje 2 Osnove Visual Basic-a

13

verzija Visual Basica nije bila uspješna i tako je ostalo sve do druge verzije koja je napravljena 1993-e godine. Tek tada su programeri i ostali korisnici otkrili snagu VB-a i poceli da ga koriste. U 3.0 verziji VB-a koja je izdata ne dugo poslije 2.0 VB je počeo da raste i prodao je najviše kopija od svih programerskih jezika. (milioni i više). Do sada Visual Basic je osvojio titulu profesionalnog programerskog jezika i obnovio kompletnu kulturu i sadrzaj BASIC programerskog jezika. Jedna od poznatih osobina VB-a je da može da pravi OCX i ActiveX kontrole što znači da ima veliki uticaj u Windows programe koje se nalaze na današnjem tržištu. Jedna od loših strana VB-a je da su programi koji su napravljeni u njemu veoma spori usporedjujući sa Pascal ili recimo Delphi, C, C++ sve do verzije 5.0. Gdje je Microsoft promjenio VB-a i napravio ga jednim od najbržih programerskih jezika koji je ostavio Pascal, Delphi, PowerBuilder i neke druge daleko iza sebe i počeo da se natječe sa C i C++. VB i internet se slažu veoma dobro, uz pomoć ActiveX controls koji omogućavaju VB programima da budu postavljeni na internet slično kao što je i JAVA tako da korisnici ne moraju da pozivaju odreñeni program na svoj računar nego mogu da posjete odreñenu stranicu i da dobiju ono što žele. Nova verzija koja je nastala 1998, godine VB 6.0 je omogućio puno toga više nego što su predhodne verzije imale. Opcije kao sto su: pristup bazama podataka, internetu, kontrolama, kreiranje komponenata kao i čarobnjak za automatizaciju posla.

Trenutno najnovija verzija VB-a je VB-Net ili ponekad nazvan i VB 7.0 koji je izašao u 2002. Ova verzija će biti u sklopu .Net programa koji će praviti XML aplikacije za Mircosoft CO. VB.Net je potpuno drugačiji nego VB 6.0 i programeri iz Microsoft se slažu sa tim da sa VB.Net ostali programeri će morati da počnu iz početka da bi razumjeli izgled i opcije koje nudi VB.Net.

2.1 Zašto programirati u VisualBasic -u

- Jednostavnost do krajnjih granica je jedna od odlika VisualBasic-a koja ga izdvaja od ostalih razvojnih programerskih paketa.

- Produžen Windows standard - Sve što korisnik može da vidi kao standard u Windows okruženju, može se projektovati u VisualBasic-u.

- Razvojna platforma za sve aplikacije Microsoft-a - VBA je potomak Visual Basic-a i razvijaće se u zavisnosti od razvoja ovog paketa.

- Radeći u VisualBasic-u najbolje se može sagledati i upoznati arhitektura O.S. Windows, jer su sve njegove funkcije i servisi programeru na raspolaganju,

Poglavlje 2: Osnove Visual Basic-a

14

tako da se ne gubi vrijeme na programiranju onoga što Windows već sadrži. Kao tipičan primer ovog je korišćenje servisa: štampanja, izbor boje iz palete, izbor fonta,...

- U VisualBasic-u, i Basic-u uopšte, programeru je na raspolaganju mnogo načina da uradi isto, tako da do izražaja dolazi njegova kreativnost, od koje zavisi kvalitet i popularnost njegovog softvera.

2.2 Izdanja Visual Basica

Visual Basic je dostupan u tri verzije. Svaka je opremljena tako da zadovolji odreñen krug razvojnih zahtjeva. � Visual Basic Learning izdanje omogućuje programerima lako stvaranje moćnih

aplikacija za Microsoft Windows i Windows NT operativne sisteme. Uključuje komande za nadzor nad mrežom, etiketama i bazama podataka. Dokumentacija koja dolazi s ovom verzijom uključuje Learn VB Now CD te CD-e sa Microsoft Developer Network (MSDN) datotekama koje sadrže punu dokumentaciju. � Profesionalno izdanje pruža računarskim profesionalcima potpuno opremljen komplet alata za razvoj rješenja za druge. Uključuje sve osobine Learning izdanja te dodatne ActiveX kontrole, Internet Information Server Application Designer, ugrañene Visual Database Tools i Data Environment, Active Data Objects te Dynamic HTML Page Designer. Dokumentacija koja dolazi s Professional izdanjem uključuje i knjigu Visual Studio Professional Features i MSDN CD-e s punom dokumentacijom. � Enterprise izdanje omogućuje profesionalcima uz pomoć razvojnih timova stvaranje snažnih aplikacija za daljnju distribuciju. Uključuje sve osobine Professional izdanja te Back Office alate kao što su SQL Server, Microsoft Transaction Server, Internet Information Server, Visual SourceSafe, SNA Server, i druge. Štampana dokumentacija koja dolazi s Enterprise izdanjem uključuje knjigu Visual Studio Enterprise Features te MSDN CD-e sa punom dokumentacijom.

2.3 Instaliranje Visual Basica

Visual Basic instalirate na svoj računar korištenjem Setup aplikacije. Setup aplikacija instalira Visual Basic i ostale dijelove programskog paketa s CD ROM-a na vaš hard disk. Ona takoñer instalira i datoteke potrebne za pregled dokumentacije na MSDN CD-ima. Ako želite, na svoj računar možete instalirati samo Visual Basic dokumentaciju i primjere.

Važno! Ne možete samo prekopirati datoteke sa CD ROM–a na vaš hard disk i pokrenuti Visual Basic. Morate upotrijebiti Setup aplikaciju koja će dekomprimirati i

Poglavlje 2 Osnove Visual Basic-a

15

instalirati datoteke u odgovarajuće direktorije.

• Prije pokretanja Setup aplikacije – Stvari koje treba prethodno provjeriti

• Postavljanje Visual Basica – Upute za instaliranje Visual Basica

2.4 Prije pokretanja Setup aplikacije Prije instaliranja Visual Basica, provjerite da li Vaš računar zadovoljava minimalne zahtjeve i pročitajte Readme datoteku koja se nalazi u glavnom direktoriju na instalacijskom disku.

Provjera hardverskih i sistemskih zahtjeva

Za pokretanje Visual Basica morate imati odgovarajući hardver te softver već instaliran na računaru. Sistemski zahtjevi su sljedeći: • Microsoft Windows 95 operativni sistem ili viši, Microsoft Windows NT Workstation 4.0 (Service Pack 3 preporučen) operativni sistem ili viši.

• 486DX/66 MHz ili jači procesor (Pentium ili jači preporučen) ili bilo koji Alpha procesor sa Microsoft Windows NT Workstation 4.0 operativnim sistemom.

• CD-ROM pogon.

• monitor VGA ili jače rezolucije podržan od Microsoft Windowsa.

• 16 MB RAM memorije za Windowse 95/98, 32 MB RAM memorije za Windows

NT Workstation

• miš ili odgovarajući ureñaj.

2.5 Principi strukturnog programiranja

Strukturno programiranje je specifičan način kreiranja programa (u kodu) kod koga se za kreiranje logičke programske strukture primjenjuju standardizovani elementi. Strukturno programiranje je koncepcijski postavljena tehnika projektovanja programa u skladu sa skupom utvrñenih pravila, kojima se umanjuje mogućnost pojave problema kod testiranja, povećava produktivnost i čitljivost napisanog programskog koda. Primjena tehnike strukturnog programiranja pretpostavlja eliminisanje GoTo naredbe i uvoñenje utvrñenih logičkih algoritamskih struktura sa adekvatnim strukturnim instrukcijama grananja i kontrolnim instrukcijama. Takoñe, tehnika strukturnog programiranja uključuje koncepciju oblikovanja programa tehnikom modularnog programiranja i razvoja svrha, kao i utvrñeni broj manje važnih ograničenja i pravila u odnosu na programiranje.

Poglavlje 2: Osnove Visual Basic-a

16

Kritična faza u razvoju softvera je testiranje. Pokazalo se da su troškovi testiranja i modifikacije, nekonvencionalno urañenog programa, 100 puta veći od troškova izrade samog programa. Činjenica je da mnoge greške koje se ne otkriju u fazi testiranja, kasnije u eksploataciji dovode do ogromnih finansijskih gubitaka ne samo proizvoñača, nego i korisnika. Kraće vrijeme testiranja, kao i rezultati u boljoj jasnoći i preglednosti, dovode do povećanja produktivnosti programera. Skraćenje vremena izrade programa je jedan od preduslova konkurentnosti na tržištu softvera. Pored ovoga, na kvalitet programa utiče i brzina njegovog izvoñenja, što opet zavisi od kompajlera u kome je softver rañen, ali i usklañenosti sa operativnim sistemom. Po ovom pitanju programi danas nemaju većih problema, jer se svakim danom pojavljuju novi računari PC konfiguracije sa još boljim performansama.

Osnovni princip modularnog programiranja je u tome da program treba razložiti na sitnije cjeline, sve dok se ne doñe do sekvenci koje su pregledne i koje se mogu lako kodirati. Obično, ova sekvenca, ne bi trebalo da preñe visinu jedne stranice koda prikazanog na ekranu. Na taj način, ako dokažemo ispravnost modula na k-tom nivou, lako ćemo dokazati njegovu ispravnost i na k+1 nivou. Sljedeći hijerarhijsku organizaciju modula, za veoma kratko vreme, možemo odrediti koji od njih neispravno funkcioniše. Najvažnije prednosti modularnog programiranja su sledeće:

- Moduli se mogu testirati nezavisno. Provjeren i istestiran modul se prilaže projektu ili programskoj biblioteci.

- Jedan modul istovremeno se može koristiti u više projekta,

- Održavanje projekta je olakšano s obzirom da su procedure podijeljene po modulima, a moduli po namjeni.

- Kod rada sa modulima treba se držati opštih pravila:

- Svaki modul treba da sadrži najmanje jednu nezavisnu proceduru,

- Veze izmeñu modula morajubiti jednostavne i lako prepoznatljive,

- Svi podaci koji se koriste samo u datom modulu moraju biti tako i deklarisani, odnosno ne smeju biti na raspolaganju drugim modulima,

- Modul treba da utiče samo na izmjenu definisanih podataka, a da nema uticaja na globalni tok programa,

- Logička struktura modula mora biti pregledna.

Teorija na kojoj se zasniva tehnika strukturnog programiranja, zasniva se na tvrñenju da se svaka logička programska cjelina može proizvesti od tri osnovne strukture:

Poglavlje 2 Osnove Visual Basic-a

17

Sekvenca - elementarna algoritamska struktura (nekoliko uzastopnih instrukcija)

Selekcija - razgranata algoritamska struktura (uslovno grananje), kojom se obezbjeñuje izbor izmeñu (najmanje) dva alternativna puta, jedan kada je uslov zadovoljen, a drugi kada nije. Ovde se mogu svrstati instrukcije If..Then..Else, On..GoSub.., Select Case.., itd.

Iteracija - ciklična algoritamska struktura (višestruko ponavljanje niza operacija), pri čemu je broj puta ponavljanja ograničen datim uslovom. Ovde se mogu primjeniti petlje: Do..Loop, Do..While, While..Wend, For..Next, itd.

Procedura koja je kreirana tehnikom strukturnog programiranja, mora da zadovolji sledeće kriterijume:

- svaki logički tok može imati samo jednu ulaznu i jednu izlaznu tačku,

- logički tok procedure se vrši od ulazne do izlazne tačke uz korišćenje i povezivanje različitih elementarnih algoritamskih koraka, zavisno od akcija korisnika.

- Preglednost programa u mnogome zavisi i od stila pisanja koda. Preporučljivo je da se pojedine funkcionalne cjeline zapisuju u "bloku" (jedno ispod drugog). Kod postaje čitljiviji ako su programske linije unutrašnjeg ciklusa uvučene u odnosu na linije spoljašnjeg ciklusa.

- Pored toga, veoma je značajno prokomentarisati modul, proceduru, ali i neki programski blok.

Poglavlje 2: Osnove Visual Basic-a

18

2.6 Ciljevi knjige ⇒ Prepoznavanje prednosti Microsoft Visual Basic 6.0 kao impresivne

programske alatke ⇒ Razumijevanje Visual Basic dogañajima voñen programski koncept, terminologiju i dostupne alate ⇒ Razumjevanje osnovnih koncepta dizajna , implementacije i distribucije Visual Basic aplikacije ⇒ Razumjevanje korištenja Visual Basic alata ⇒ Učenje modifikacije osobina objekta ⇒ Učenje metoda objekta ⇒ Korištenje menija za dizajn programskog prostora ⇒ Grafičke tehnike u Visual Basic-u ⇒ Razumijevanje rada sa bazama podataka

Poglavlje 2 Osnove Visual Basic-a

19

2.7 Šta je Visual Basic? • Visual Basic je alat koji razvija Windows (Graphic User Interface - GUI)

aplikacije. Aplikacije imaju jednostavan korisnički interfejs. • Visual Basic je dogañajem uzrokovani (event-driven) program, tj. glavni kod

ostaje neaktivan i čeka da se ostvari neki dogañaj (pritisak dugmeta, izbor menija, pritisak na dugme miša, ...). Ništa se ne dešava dok se dogañaj ne detektuje. Kada se dogañaj detektuje, kod odgovara na taj dogañaj (procedura dogañaja) se izvršava. Programska kontrola se tada prebacuje na procesor dogañaja kao na sl. 1 .

Procedure Dogañaja

Sl. 1 Procesiranje doga ñaja u Visual Basicu

Neke osobine Visual Basic-a ⇒ Puni skup objekta – Vi crtate aplikaciju ⇒ Mnogo ikona i slika za vaše potrebe ⇒ Odgovor na akciju miša i akcije sa tastature ⇒ Pristup štampaču ⇒ Mnogo matematičkih , string i grafičkih funkcija ⇒ Fiksne i dinamičke varijable ⇒ Sekvencijalne i slučajne fajlove ⇒ Korisan dibager za obradu grešaka ⇒ Alatke za pristup bazama podataka ⇒ ActiveX podrška ⇒ Čarobnjak za distribuciju gotove aplikacije

Dogañaj? Procesor Dogañaja

Basic Kod

Basic Kod

Basic kod

Poglavlje 2: Osnove Visual Basic-a

20

Kontrola

Kontrola

Kontrola

Kontrola

Kontrola

Kontrola

Form 3 (.FRM) Module 1 (.BAS)

2.8 Struktura Visual Basic Aplikacije Projekt (.VBP, .MAK)

Sl. 2 Struktura koda Visual Basic-a

Aplikacija (Projekt) sačinjavaju: ⇒ Forme (Forms) - Windows koji kreirate za vašu aplikaciju ⇒ Kontrole (Controls) – Grafičke mogućnosti crtanja na formi uz

korisničku interakciju (tekst boksovi, labele, skrol bar, komandna dugmad, itd) (Forme i Kontrole su objekti (objects) .) ⇒ Osobine (Properties) – Svaka karakteristika forme ili kontrole se može Mijenjati preko osobina (property ). Primjer osobina ukuljučuje ime, osobine, veličine i sadržaj. Možete promjeniti osobine u vrijeme dizajna i u samom radu programa. ⇒ Metode (Methods) – Ugrañene procedura koje se koriste da obrade neku akciju nad odgovarajućim objektom. ⇒ Procedure doga ñaja (Event Procedures) – Kod koji odgovara nekom dogañaju nad nekim objektom (pomjeraj miša, pritisak na taster itd…) ⇒ Generalne procedure (General Procedures) – Kod koji nije u relaciji sa objektom nego obrañuje neki višenamjenski podprogram. ⇒ Moduli (Modules) – Kolekcija osnovnih procedura, deklaracija varijabli i definicija koje koristi aplikacija.

Form 2 (.FRM)

Kontrola

Kontrola

Kontrola

Form 1 (.FRM)

Poglavlje 2 Osnove Visual Basic-a

21

2.9 Konstante u VB-u

Deklarisanje konstante jednostavno znači da Visual Basic-u saopštavate da ona postoji. Službena reč Const koristi se za deklaraciju konstante. Nakon reči Const sledi ime konstante. Nakon imena konstante sledi znak jednakosti a zatim vrednost koju bi konstanta trebalo da sadrži.

A evo i jednostavan primjer programa koji koristi konstantu. Option Explicit Const MojaKonstanta = "Zdravo" Private Sub Form_Load ()

Debug.Print MojaKonstanta

End Sub

2.10 Promenljive u VB-u

Veličine koje mogu da imaju vrednosti različitih konstanti nazivaju se promenljivim veličinama. Svaku promenljivu karakterišu tri svojstva: ime, oblast definisanosti i tekuća vrednost.

Ime promenljive

Prilikom definisanja imena promenljive u Visual Basic- u mora se voditi računa o sledećem: � da ime promenljive počinje slovom � da dužina imena promenljive može da bude najmanje jedan a najviše 255

znakova � da ostali simboli imena promenljive mogu da budu slova, cifre i znak za podvlačenje � ime promenljive ne sme da bude isto kao i neka službena reč Visual Basic-a.

Primjeri ispravno i loše definisanih imena promenljivih u tabeli 2:

Tabela 2.1

Ispravno definisana imena Loše definisana imena

Moja_Kola Moja.Kola

OvaGodina 1Nova

Vrlo_Dugo_Ime Vrlo&DugoIme

Poglavlje 2: Osnove Visual Basic-a

22

Zadatak 2.1 Koje promenljive predstavljaju primjere ispravno definisanih promenljivih a koje promenljive predstavljaju primjere loše definisanih promenljivih:

A1, 123D, XZ, CENA, L123, Telefon, Prvi cas, Dan-noc, IME_I_PREZIME, +Regres, Then, KAMATA

Oblast definisanosti promenljive predstavlja interval iz kog se promenljivoj može dodeliti vrednost.

Tekuća vrednost promenljive je podatak koji je dodeljen imenu promenljive.

2.11 Izraz u VB-u

Izraz u Visual Basic-u predstavlja niz konstanti i promenljivih meñusobno razdvojenih aritmetičkim operacijama.

Primjer 2.1

Primjeri za izraz

U matematici U jeziku Visual Basic

2x+y² 2*X+Y^2 2rπ 2*R*3.14159

-a+ 2

-A+2/A a

x²+2x+3,1 X^2+2*X+3.1

Sve aritmetičke operacije su prema redosledu izvoñenja podeljene u tri grupe:

1. stepenovanje i promena znaka

2. množenje i deljenje.

3. U Visual Basic-u postoji mogućnost celobrojnog deljenja (primjer 19\4 = 4), kod celobrojnog deljenja postoji i mogućnost odreñivanja ostatka prilikom deljenja 15 Mod 4 = 3

4. sabiranje i oduzimanje Od znakovnih konstanti i promenljivih mogu se formirati znakovni izrazi. Samo jedna operacija se koristi za formiranje znakovnih izraza, označava se znakom +

Poglavlje 2 Osnove Visual Basic-a

23

ili znakom &, a znači spajanje (primjer "Visual "&"Basic"="Visual Basic") Primjer 2.2

1. "Banja"+"luka" daje "Banjaluka" 2. "Banja "+"Luka" daje "Banja Luka"

2.12 Pravila deklarisanja promenljivih Promenljivima se u Visual Basic-u dodeljuju podaci. Zato bi trebalo da se program Visual Basic- a obavesti o tome kakve će tekuće vrednosti promenljiva moći da dobija u programu. Dakle, treba deklarisati promenljive pre njihovog korišćenja dodeljujući im ime i tip podatka.

U jeziku Visual Basic postoji onoliko tipova promenljivih koliko ima tipova podatka. Postupak prijavljivanja vrste promenljive naziva se deklarisanje promenljive.

Dozvoljena su dva načina deklarisanja promenljive: eksplicitni i implicitni.

Eksplicitni način deklarisanja promenljive koristi službenu reč Dim. Ova naredba izgleda ovako:

Dim ImePromenljive As Vrsta promenljive, ImePromenljive As Vrsta promenljive...

Primjer 2.3

Dim password As String

Dim Ime As String

Dim prvibr As Integer

Dim drugibr As Integer

Dim suma As Integer

A mogu se pisati u jednoj liniji, odvajajući svaku promenljivu zarezom, kao:

Dim StranicaTrougla As Integer, PovrsinaTrougla As Single, VrstaTrougla As String

Implicitan način deklarisanja promenljive sastoji se u tome što se na kraju imena promenljive dodaje poseban znak koji opredeljuje tip promenljive. Ovom deklaracijom ne mogu se definisati svi tipovi podataka. Simboli koji se koriste za implicitnu dekleraciju promenljivih su sledeći:

Poglavlje 2: Osnove Visual Basic-a

24

simbol @ ozna čava Currency simbol # ozna čava Double simbol % ozna čava Integer simbol & ozna čava Long simbol ! ozna čava Single simbol $ ozna čava String

Ako tip podatka nije odreñen, VB će automatski da deklariše promenljivu kao Variant. Za deklaraciju promenljive kao string, postoje dva moguća formata. Za string promenljive dužine možemo koristiti format kao u primjeru 7., za promenljivu fiksne dužine koristi se format:

Dim ImePromenljive As String * n, gde n definiše broj karaktera koje string može da sadrži.

Primjer 2.4 Dim Ime As String *10 Ime ne može da sadrži više od 10 karaktera.

2..13 Naredba dodele (obrade)

Nakon dekleracije različitih promenljivih korišćenjem Dim iskaza, možemo dodeliti vrednosti tim promenljivim. Opšti oblik naredbe dodele je: ImePromenljive = Izraz

Primjer 2.5

prviBroj = 100 'dodeljivanje brojeva promenljivoj

drugiBroj = prviBroj-99

Ime = "John" 'dodeljivanje znakovnih nizova promenljivoj

userpass.Text = password 'svojstva objekata su takoñe promenljive

Label1.Visible = True 'dodeljivanje vrednosti svojstvima objekta

Command1.Visible = false

Label4.Caption = textbox1.Text 'dodeljivanje promenljive drugim promenljivim

Form2!txtNovOkvir.Text = txtPoruka.Text 'dodeljivanje vrednosti svojstvima objekta koji se nalaze u drugim obrascima

Poglavlje 2 Osnove Visual Basic-a

25

2.14 Koraci u razvoju aplikacije • Postoje tri primarna koraka za izradu aplikacije u Visual Basic-u:

1. Crtanje interfejsa

2. Dodjeljivanje osobina(properties) kontrolama

3. Dodavanja koda kontrolama

Vidjet ćemo svaki korak. Crtanje Korisni čkog interfejsa i postavljanje osobina � Visual Basic radi u tri moda. ⇒ Mod Dizajna – koristi se za izradu aplikacije ⇒ Start (Run) mod – koristi se za start aplikacije ⇒ Prekid (Break) mod – aplikacija se zaustavlja zbog dibagiranja

Poglavlje 2: Osnove Visual Basic-a

26

U daljem tekstu ćemo se fokusirati na Dizajn mod

Sl.3 Visual Basic Okruženje

Poglavlje 2 Osnove Visual Basic-a

27

2.15 Pokretanje VB 6.0 i opis njegovog okruženja

Visual Basic 6.0 pokreće se na sljedeće načine: korištenjem Start dugmeta na Windows traci sa zadacama (Task Bar). U meniju Programs → Microsoft Visual Studio 6.0 izborom opcije Microsoft Visual Basic 6.0 . Pojavit će se prozor kao na Sl. 4.

Sl.4 Okvir za dialog New Project

Pojavljuje se odmah nakon učitavanja Visual Basica. Ponuñene grupe opcija: New (za kreiranje novog projekta), Existing (za otvaranje postojećeg projekta) te Recent (za otvaranje nedavno korištenog projekta). S obzirom da nemamo prethodno spremljenih projekta iz grupe New izaberemo opciju Standard EXE te otvaramo novi projekt koji se prikazuje u razvojnoj okolini Visual Basica (Sl. 5). Visual Basic omogućuje tri načina rada: Design mode (za razvoj programa, tj. izrade interfejsa i programskog koda), Run mode (za izvršavanje programa u fazi testiranja) i Break (program je zaustavljen i nudi se okolina za

Poglavlje 2: Osnove Visual Basic-a

28

ispravljanje pogrešaka u kodu - debugging). U daljnjem tekstu usredotočit ćemo se na kreiranje programa.

U ovom prozoru se, u obliku stabla, prikazuju moduli koji čine tekući projekt, omogućen je pregled modula u obliku objekta (View Object) ili koda (View Code). U korjenu ovog stabla nalazi se ime projekta (Projectl), a u zagradi ime fajla (Primjer.vbp) u kojem je sačuvan. Dalje u stablu se razvijaju grane:

- Forme (Forms), u kojoj se nalaze imena i fajlovi formi,

- Moduli (Modules). sa imenima i fajlovima standardnih modulakoda,

- Klase (Class Modules). sa imenima i fajlovima modula klasa.

Sl 5. Prozor kreiranja Forme

Nakon pokretanja novog projekta, kao što je prikazano na Sl. 2, pojavljuje se šest prozora koji se mogu pojedinčano uključivati, isključivati te pomicati po prozoru. To su: glavni prozor, prozor forme, prozor s

Poglavlje 2 Osnove Visual Basic-a

29

alatima, prozor s osobinama, prozor izgleda forme i prozor s projektima.

Glavni prozor (Main Window ) (slika 6 ) sastoji se od naslovne trake (Title Bar ), trake s menijima (Menu Bar ) i trake s alatima (Tool Bar ). Naslovna traka pokazuje ime aktivnog projekta, ime aktivne forme te način na koji korisnik trenutno radi. Traka s menijima sadrži padajuće menije pomoću kojih korisnik kontroliše operacije u radnoj okolini Visual Basic-a. Traka s alatima sadrži dugmad koja predstavljaju prečice za neke od opcija trake s menijima. Glavni prozor prikazuje i poziciju aktivne forme u odnosu na gornji lijevi ugao ekrana te širinu i visinu aktivne forme.

2.16 Elementi okruženja ⇒ Glavni prozor se sastoji od glavnog prozora, menija i alatki. U glavnom

prozoru je ime projekta, ispis moda rada Visual Basic-a, tekući Visual Basic operativni mod i tekuća forma.

Sl. 6 Opcije trake s alatima (Toolbar)

Poglavlje 2: Osnove Visual Basic-a

30

Sl. 7 Paleta pre čica i podešavanja

Sve komponente osim linije padajućih menija u radnom okruženju Visual Basica su pokretne i elastične (mogu im se mijenjati položaj i dimenzije)

Sl. 8 Alati (ToolBox)

Poglavlje 2 Osnove Visual Basic-a

31

2.17 Prozor Alata (ToolBox)

ToolBox prozor (sl. 8 ) sadrži grafičke kontrole. Toolbox sadrži jednu ili više paleta na kojima se nalaze tipovi grafičko upravljačkih kontrola, koje je moguće uključiti u sastav forme, a preko nje i u interfejs aplikacije koja se kreira. Ako se kursorom miša pristupi nekom od simbola, pojaviće se mali natpis sa imenom tipa kontrole, koju ovaj simbol predstavlja, tako da ih nije potrebno posebno pamtiti.

Toolbox je jednostavan za korišćenje i sličan interfejsu koji se primjenjuje kod mnogih grafičkih programa. Kada treba postaviti neku grafičko upravljačku kontrolu na formu, najpre treba kliknuti mišem na njen simbol u Toolbox-u, a zatim pritisnuti taster miša na formu i "nacrtati" (razvući) odabranu kontrolu na njoj. Nanetoj kontroli se potom mogu promijeniti dimenzije i/ili položaj, može se "obrisati", kopirati,... Prilikom rada na dizajniranju kontrola na formi treba koristiti mogućnosti Drag&Drop metode, a manje koristiti rad sa tastature, jer nije komforan.

Ovde će biti dat sažeti opis funkcionisanja nekoliko grafičkih kontrola, koje su programeru na raspolaganju po instalaciji VisualBasic-a. Detaljniji opis svake od ovih (ali i još nekih interesantnih) kontrola biće izloženo kroz praktičan pristup rešavanju problema kreiranja sprege izmeñu korisnika i aplikacije.

Prozor- Project U ovom prozoru se prikazuju moduli koji čine tekući projekt. Omogućen je pregled objekta u obliku objekta ili koda.

Prozor- Project

Ako se radi na grupi projekta, stablo je u korjenu podijeljeno na projekte

Poglavlje 2: Osnove Visual Basic-a

32

Prozor- Proporties

Kada kontroli treba podesiti Osobine koristi se Combo Box i lista stavki u prozoru Osobine boja

Prozor- Form Layout

U prozoru za rasporeñivanje elemenata obrasca obrasci se prikazuju na malom računarskom ekranu, gde se može podešavati njihov uzajamni odnos i položaj na nekoliko rezolucija. Sve forme, čiji su prozori za dizajn otvoreni, vide se u uprošćenom i umanjenom obliku u prozoru Form Layout, gde se može vidjeti i podešavati njihov uzajamni odnos i položaj na Ekranu na nekoliko rezolucija i to od tekuće čije su granice sam prozor, pa sve do 640 x 480), tako da programer

može vidjeti kako će koja forma (pa i cjli projekt) izgledati na Screen-u u drugim (nižim) rezolucijama.

Sl. 9 Prozor koda

Poglavlje 2 Osnove Visual Basic-a

33

Bez obzira da li se radi o modulu forme, standardnom modulu ili modulu klase, on sadrži kod, dakle javlja se potreba da ga dodajemo, mijenjamo i uklanjamo. Znanje, iskustvo i spretnost programera u pisanju koda se razvijaju godinama rada i nemojte se razočarati kada vaši prvi programi budu "zapinjali" baš tamo gde ste vi nešto radili u kodu. Isto tako, nije dobro da se neiskusan programer mnogo bavi radom u kodu, jer korišćenjem nekih instrukcija i funkcija, može ugroziti integritet podataka, odnosno O.S.-a na disku.

Aktiviranje ovog prozora, za neki modul, se postiže preko prozora projekta, klikom na ikonu sa natpisom View Code, ili Db/C/icfc-om na površinu forme (ili kontrole). Na lijevom ComboBox-u, prozora koda, biće prikazana lista objekta, a na desnom lista procedura, dok će se u slučaju standardnog modula na lijevom ComboBox-u naći samo stavka General koja označava početni deo modula, gde se postavljaju programske linije deklaracije podataka i eventualno biblioteka.

U donjem levom uglu ovog prozora postoje dva tastera za izbor načina pregleda koda i to:

- lievi - Procedure View, za pojedinačan pregled procedura (na prozoru se ne mogu naći istovremeno dvije procedure) i

- desni - Full Module View, za pun pregled modula koda (kada izmeñu procedura stoji tanka linija, kao separator pro- cedura) koji se u principu mnogo više koristi.

U slučaju kada je modul koda kompleksan (veliki broj linija) doći ćemo u situaciju da "trčkaramo" od jedne do neke druge udaljene linije u njemu, a da bi ovo izbjegli treba primjeniti Split Window, odnosno podijeliti ovaj prozor koda na dva dela, u kojima možemo istovremeno vidjeti dva udaljena bloka programskih linija i koristiti klizače sa desne strane, da se po ovim dijelovima krećemo (postupak prikazanna stri slike sa desne strane).

NAPOMENA: Mnoge opcije oblika pregleda modula koda podešavaju se iz Options dijaloga u karticama Editor i Editor Format.

Poglavlje 2: Osnove Visual Basic-a

34

Prozor koda

U slučaju kada je modul koda kompleksan treba primjeniti Split Window

Sl. 10 Grafi čki prikaz sistema padaju ćih menija- File meni

Sadrži pristup komandama za otvaranje, snimanje, štampanje i prevoñenje Visual Basic programa.

Poglavlje 2 Osnove Visual Basic-a

35

Sl. 11 Grafi čki prikaz sistema padaju ćih menija- Edit

Sadrži pristup servisima od veće pomoći za rad u kodu nego grafičkom dizajniranju aplikacije projekta.

Poglavlje 2: Osnove Visual Basic-a

36

Sl. 12 Grafi čki prikaz sistema padaju ćih menija- Run meni

Sadrži pozive komandi za start, pauzu i prekid izvršavanja aplikacije. 2.18 Sistem padaju ćih menija

Grafički prikaz kompletnog sistema padajućih menija dat je u prilogu B, na kraju ove knjige, a ovde će meniji biti opisani samo po grupisanim servisima.

Windows Forma je centralni dio Visual Basic aplikacije. To je mjesto gdje crtamo aplikaciju. Prozor forme (Form) je središnji prozor pri razvoju VB programa na kojem kreiramo izgled korisnikog interfejsa programa. Program može sadržavati više formi. Forme su objekti interfejsa definisani svojstvima koja odreñuju ponašanje objekta. Način interakcije sa korisnikom odreñen je dogañajima koji su pridruženi objektima. Postavljanjem svojstava forme i pisanjem Visual Basic programskog koda za dogañaje koji se aktiviraju kada pokrenemo mišem ili tastaturom objekte na formi , pravimo interfejs prema krajnjem korisniku.

Sl. 13 Prozor Forme

Poglavlje 2 Osnove Visual Basic-a

37

⇒ Osobine nekog objekta se koriste da promijenimo odreñene atribute objekta. Prozor sa osobinama (Properties ) (sl. 14 ) koristi se za definisanje vrijednosti osobina elemenata korisničkog interfejsa programa. Osobine pojedinog elementa interfejsa poredane su po abecedi i po kategorijama (Alphabetic and Categorized). Prozor čine dva stupca: u prvom stupcu su navedene osobine, a u drugom njihove vrijednosti.

Sl. 14 Prozor sa osobinama

Prozor izgleda forme (Form Layout) prikazuje gdje se aktivna forma nalaziti tokom izvršavanja programa s obzirom na radnu površinu ekrana (Desktop).(Sl 15) ⇒ Izgled forme u prozoru prikazuje gdje je forma.

Sl. 15 Prozor izgleda forme (Form Layout)

Poglavlje 2: Osnove Visual Basic-a

38

⇒ Prozor s projektima sl. 16 (Project) prikazuje listu svih formi i modula koji čine program, a moguć je pogled na prozor forme (Form) ili prozor s programskim kodom (Code).

Sl. 16 Prozor sa projektima

Programi u Visual Basic -u kreiraju se smještanjem elemenata korisničkog interfejsa na formu programa. Smještaj elemenata interfejsa na formu može se izvesti na dva načina:

Sl. 17 Crtanje komandnog dugmeta

Poglavlje 2 Osnove Visual Basic-a

39

1. dvostrukim pritiskom na lijevu tipku miša kad je pokazivač smješten iznad dugmeta pojedinog elementa iz alatnog ovira, nakon čega se element interfejsa pojavljuje na formi te se može naknadno pomjerati , a mogu mu se Mijenjati i visina i širina.

2. izborom dugmeta pojedinog elementa iz alatnog okvira mijenja se oblik pokazivača te se nakon pritiska na lijevu tipku miša pomicanjem pokazivača iznad forme oblikuje element interfejsa.

Na Sl 17 prikazano je kreiranje komandnog dugmeta, a služi korisnicima za pokretanje odreñene akcije. Neke od osobina komandnog dugmeta su: Appearance -3-D ili 2-D izgled dugmeta, Cancel -dopušta izbor dugmeta s tasterom Esc (samo jedno dugme na

formi može imati uključenu ovu osobinu – vrijednost True ), Caption -natpis koji se prikazuje na dugmetu, Default -dopušta izbor dugmeta s tasterom Enter (samo jedan na formi

može imati ukljućenu ovu osobinu – vrijednost True ), Font -postavlja tip slova natpisa, stil i veličinu. Tačke za mijenjanje veličine elemanta komande nalaze se na uglovima kontrole, dok se tačkama na bočnim stranama elementa mijenja samo širina, odnosno visina elementa (sl. 18 ).

Sl. 18 Tačke za promjenu veli čine elementa

Poglavlje 2: Osnove Visual Basic-a

40

2.19 Kreiranje prvog programa U ovom primjeru opisani su osnovni koraci za kreiranje programa te je prikazana izrada jednostavnog primjera. Osnovni koraci za kreiranje programa jesu:

1. Kreiranje izgleda korisničkog interfejsa smještanjem elemenata na formu,

2. Definisanje vrijednosti osobina elemenata,

3. Pridruživanje programskog koda kontrolama, izrada programskog koda.

Zadatak ovog primjera je ispisivanje poruke "Dobar dan!" u okviru s

tekstom nakon pritiska na komandno dugme. Uz komandno dugme opisano uz slici 15 , na postojeću formu iznad komandnog dugmeta treba dodati okvir s tekstom (slika 19 ). Okvir s tekstom se koristi za prikaz i unošenje teksta, od strane korisnika za vrijeme rada ili za ispis teksta odredenog programskim kodom.

Sl. 19 Crtanje elementa okvira s tekstom

Poglavlje 2 Osnove Visual Basic-a

41

Neke od osobina okvira s tekstom su:

Appearance -3-D ili 2-D izgled,

BorderStyle -odreñuje vrstu okvira,

Font -postavlja vrstu slova natpisa, stil i veličinu,

MaxLength -ograničava dužinu prikazanog teksta (vrijednost 0 je za neograničenu dužinu),

MultiLine -odreñuje da li se tekst u okviru prikazuje u jednom ili više redova,

PasswordChar -skriva tekst definisanim znakom,

ScrollBars -odreduje vrstu vertikalnih i horizontalnih klizača za pregledanje teksta dužeg od definisanih dimenzija okvira,

Text -tekst koji se prikazuje u okviru.

Jedna od metoda okvira s tekstom je:

SetFocus -nakon pozivanja smješta pokazivač miša u specificirani okvir s tekstom.

U prozoru osobina (Properties) postoje tri objekta: forma, komandno dugme i

okvir s tekstom. Osobine i njihove vrijednosti za svaki objekt mogu se vidjeti izabiranjem pojedinog objekta iz popisa objekta u prozoru osobina ili jednostavno klikom lijevom tasterom miša na pojedini objekt na formi. Vrlo važna osobina svakog objekta je ime (Name), jer se koristi kao referenca na odreñeni objekt u programskom kodu Visual Basic-a.

Postoji konvencija za davanje imena objektima koja koristi korisnički interfejs sličan Visual Basicu, tako da se ime sastoji od prefiksa (zavisno o tipu objekta) i imena koje mu se pripiše.

Tabela 1 Primjeri za definisanje prefiksa imenima ob jekta

Objekt Prefiks Pr imjer Form frm frmWatch Command Button cmd, btn cmdExit, btnStart Label lbl lblStart, lblEnd Text Box txt txtVrijeme, txtName Menu mnu mnuExit, mnuSave Check box chk chkChoiće

Poglavlje 2: Osnove Visual Basic-a

42

Vrijednosti osobinama komandnog dugmeta, forme i okvira s tekstom dodaju se kao što je prikazano u slici 20 i tabeli 2 .

Sl. 20 Dodavanje vrijednosti osobinama komandog d ugmeta

Tabela2: Osobine elemenata osnovne Forme p rograma u VB-u Objekt Osobina Postavljena vrijednost Form1 Name

Caption Pozdravna frmPozdrav poruka

Command1 Name Caption cmdPrikaz Text1 Name Caption txtPoruka

Text1

Poglavlje 2 Osnove Visual Basic-a

43

Nakon postavljanja vrijednosti u tabeleli 2 interfejs programa poprima izgled kao na sl. 21 .

Sl. 21 Interfejs nakon dodavanja vrijednosti osobin ama

Da bi program, koji se naziva "Pozdravna poruka", ispravno radio, programski kod se izvršava zavisno o dogañajima upravljanim elementima interfejsa. Prozor sa programskim kodom u Visual Basic -u otvara se pomoću dvostrukog klika na željeni element interfejsa lijevom tasterom miša ili desnom tasterom miša na odredeni element i izborom opcije View code . Takoder se može dobiti izborom opcije View→ Code u traci s menijima ili pomoću tastera F7 na tastaturi (postoje i drugi načini).

Prozor s programskim kodom sastoji se od dva okvira sa popisima na

vrhu prozora. Prvi okvir sadrži popis objekta interfejsa, a drugi popis dogañaja za pojedini objekt (Sl. 22). Cijelokupni programski kod nekog programa može se vidjeti izborom dugmeta Full Mode View u donjem lijevom uglu prozora s programskim kodom.

Poglavlje 2: Osnove Visual Basic-a

44

Ako korisnik želi da je prikaz cjelokupnog programskog koda početna postavka tada je u meniu Tools potrebno odabrati stavku Options . Na kartici Editor u dijaloškom okviru Options potrebno je potvrditi kontrolnu kućicu lijevo od opcije Default to Full Module View .

Sl. 22 Prozor s programskim kodom

Programski kod se može sastojati od više potprograma (Sub ). Dogañajem pokretan potprogram kreiramo tako da odaberemo objekt iz popisa objekta na prozoru s kodom - u ovom primjeru izaberemo komandno dugme cmdPrikaz . Iz popisa dogañaja (Procedure ) na prozoru s kodom odaberemo ime dogañaja za odabrani objekt (slika 23,24 ).

SL. 23 Popis objekta

Poglavlje 2 Osnove Visual Basic-a

45

Sl. 24 Popis doga ñaja

U ovom primjeru, dogañaj Click je već odabran, jer je to standardni potprogram za komandno dugme koji se pokreće nakon što korisnik klikne na dugme. U prozoru sa kodom pojavljuje se predložak za ovu vrstu potprograma. Upišite sljedeći programski kod izmeñu naredbi Sub i End Sub koje označavaju početak i kraj potprograma:

txtPoruka.Text = "Dobar dan!”

Dogañajem pokretan potprogram bi nakon unosa trebao izgledati ovako:

Private Sub cmdPrikaz_Click () txtPoruka.Text = "Dobar dan!” End Sub

Ovaj programski kod mijenja vrijednost osobine Text okvira s tekstom txtPoruka

u vrijednost "Dobar dan!”.

Poglavlje 2: Osnove Visual Basic-a

46

Vrijednosti zavise o osobini koja se zadaje u obliku objekt.osobina=vrijednost. Kod upisa imena elementa (u ovom slučaju txtPoruka), mogućnost automatskog završavanja izraza (Auto List Members ) prikazuje padajući popis svih svojstava dostupnih za taj element (Sl. 25). Upišimo nekoliko prvih slova imena osobine i njeno ime je moguće odabrati s padajućeg popisa, a s tasterom TAB na tastaturi završavamo upis

.

Sl. 25 Automatsko završavanje izraza Program se pokreće izborom opcije Run→ Start u traci s menijima, izborom

opcije Start u traci s alatima ili pomocu tastera F5 na tastaturi. Nakon što pritisnete komandno dugme "OK", u okviru s tekstom bit će ispisano "Dobar dan!" (Sl. 26).

Sl. 26 Rad programa

Poglavlje 2 Osnove Visual Basic-a

47

Izrada programa završava spremanjem projekta, tako da se s menija izabere File→ Save Project ili izborom opcije Save na traci s alatima. Visual Basic će odvojeno upitati za spremanje forme otvaranjem prozora za spremanje forme (Sl. 27), a zatim i za cijeli projekt. U prozoru za snimanje možemo odabrati ponuñeno ime i mjesto spremanja za formu i projekt ili odabrati vlastito. Preporučuje se projekte spremati u zasebne direktorije koji se kreiraju pomoću opcije Create New Folder .

Sl. 27 Spremanje projekta Primjer 2.1 Štoperica 1. Startaj novi projekt. Ideja ovog projekta je da starta tajmer, zaustavi tajmer i

izračuna razliku u vremenu u sekundama. 2. Postavi komandna dugmad i šest labela na Formu. Pomjeri kontrole i podesi

veličinu kao na sledećoj slici:

Poglavlje 2: Osnove Visual Basic-a

48

Sl. 28 Postavljanje osobina Objekta u dizajn modu. � Svaka Forma i kontrola ima osobine (properties) koje su već postavljene na

neke tekuće vrijednosti kada startamo novi projekt. Postoje dva načina da prikažemo osobine objekta. Prvi je da kliknemo na objekt (formu ili kontrolu) u formi windows-a. Tada klikom na Properties Window ili Properties Window dugme na alatkama (tool bar). Drugi način je da prvo kliknemo na Properties Window. Tada selektujemo objekt iz Object kutije u Properties Window. Pogledajmo Properties Window za Štopericu:

Poglavlje 2 Osnove Visual Basic-a

49

Padajuća kontrola na vrhu Properties Window je objekt (Object) kutija. Ona ispisuje ime svakog objekta u aplikaciji onako kako smo ga unijeli. Na našem primjeru to je Form objekt. Lista osobina (Properties) se nalazi u tom prozoru. U ovoj listi se nalaze osobine za izabrani objekt. Možete izabrati osobine jednostavnim klikom na njih. Osobine se mogu Mijenjati unošenjem vrijednosti sa padajuće liste predefinisanih vrijednosti ili prostim ukucavanjem vrijednosti. Osobine se prikazuju na dva načina: alfabetski (Alphabetic) i preko kategorizacije (Categorized) . Vrlo važna osobina za objekt je ime (name) . Ime se koristi kao ime procedura koje odgovaraju tome objektu. � Konvencija za ime je ustanovljena imenovanjem Visual Basic objekta. Ova

konvencija kaže da ime mora biti od 3 slova na početku koja odreñuju koja je kontrola u pitanju (lbl - labela, cbo - combo box) nakon koje slijedi ime objekta.

Object Prefiks Primjer Form frm frmStoperica Command Button cmd, btn cmdIzlaz, btnStart Label lbl lblStart, lblEnd Text Box txt txtVrijeme, txVrijeme Menu mnu mnuIzlaz, mnuPamti Check box chk chkIzbor

� Ime objekta može biti dugo do 40 karaktera i mora početi sa slovom a, poslije slijedi broj i moguće podvlaka (_) karakter. Ime se koristi u postavljanju osobina i u pozivanju procedure , kao i u programiranju objekta i njihovih dogañaja.

Poglavlje 2: Osnove Visual Basic-a

50

2.20 Postavljanje osobina u trenutku starta � Osobine možete postavljati kada aplikacija radi. To se radi u kodu. Format

koda je:

ObjectName.Property = NovaVrijednost

Npr. da promjenimo boju u pozadini (BackColor) u plavu , uradićemo to promjenom osobine forme frmStart.BackColor :

frmStart.BackColor = BLUE

Dodjeljivanje imena doga ñajima objekta � Imena koja dodjeljujete objektima koristi Visual Basic da postavi okvire ili

procedure za obradu dogañaja u koje dodajemo kod. Format svakog podprograma je:

Sub ObjektVrijeme_Dogañaj (Opcionalni Argumenti) . . End Sub

� Visual Basic omogućava Sub linija sa svojim argumentima i na kraju End Sub izraz. Vi dodajete odgovarajući kod.

Opcionalni argumenti su varijable , koje se prenose do podprograma ili daju rezultate iz podprograma.

Primjer 2.1 Štoperica (Stopwatch) Postavljanje osob ina 1. Postavite osobine forme, tri dugmeta i šest labela:

Form1 : BorderStyle 1-Fiksni okvir Caption Stopwatch Application Name frm Stopwatch Command1 : Caption &Start Vrijeme Name cmdStartVrijeme

Poglavlje 2 Osnove Visual Basic-a

51

Command2 : Caption &End Vrijeme Name cmdEndVrijeme Command3 : Caption E&nd Name cmdEND Label1 : Caption Start Vrijeme Label2 : Caption End Vrijeme Label3 : Caption Proteklo Vrijeme Label4 : BorderStyle 1-Fiksni okvir Caption [Blank] Name lblStart Label5 : BorderStyle 1-Fiksni okvir Caption [Blank] Name lblKraj Label6 : BorderStyle 1-Fiksni okvir Caption [Blank] Name lblElepased

U osobini Caption tri komandna dugmeta koristimo and (&) da bi aktivirali Alt komandu sa tastature da pokrenemo komandno dugme sa Alt+slede će slovo iza &.

2. Vaša forma će sada izgledati:

Poglavlje 2: Osnove Visual Basic-a

52

Sl. 29 Izgled forme Štoperica nakon postavljanja obj ekata

2.21 Varijable • Sada ćemo dodati kod našoj aplikaciji. U stvari mi ćemo dodati kod proceduri

dogañaja za odreñeni objekt. Prije toga malo ćemo da diskutujemo o varijablama .

• Varijable se koriste u Visual Basic da sadrže informacije potrebne vašoj

aplikaciji Pravila za imenovanje varijabli su: ⇒ Ne više od 40 karaktera ⇒ Može sadržavati tekst, brojeve i (_) ⇒ Prvo slovo mora biti tekst ⇒ Ne možete koristiti rezervisane riječi Visual Basic-a Visual Basic tipovi podataka

Tip Podataka Sufiks Boolean None Integer % Long (Integer) & Single (Floating) ! Double (Floating) # Currency @ Date None Object None String $ Variant None

Poglavlje 2 Osnove Visual Basic-a

53

Deklaracija varijabli � Postoje tri načina za deklarisanje varijabli:

1. Default (tekući) 2. Implicit 3. Explicit

� Ako varijable nisu implicitno ili eksplicitno otkucane, dodjeljuje im se osobina variant kao tekuća.

� Implicitno se varijabla dodjeljuje kao na primjeru,

TextValue$ = "Ovo je String"

Kreira string varijablu, dok

Amount% = 300 kreira cijelobrojnu varijablu. � Za eksplicitno unošenje varijable prvo odreñujemo njegov nivo jer taj nivo ulazi u ime varijable. Ono se tvori od [imena procedure].[Ime forme].[Ime objekta], pri ;emo se vodi ra;una o:

⇒ Nivou procedure ⇒ Nivou procedure, static ⇒ Formi i nivou labele ⇒ Globalni nivo � Unutar procedure varijable se deklarišu sa Dim izrazom:

Dim MojInt as Integer Dim MojDupli as Double Dim MojString, VasString as String

� da bi varijabla bila dobavljiva i za ostale nivoe procedure, kao i za cijeli

program zamjenimo rezervisanu riječ Dim sa riječi Static :

Static MojInt as Integer Static MojDupli as Double

Poglavlje 2: Osnove Visual Basic-a

54

� Varijable koje se koriste u Formi (modulu) nisu pristupačne ostalim formama (modulima). Da bi bile dostupne one se deklarišu sa (declarations) dijelom preko general objekta. Dim ključna riječ se koristi za deklaraciju varijable:

Dim MojInt as Integer Dim MojDatum as Date

� Globalne varijable dozvoljavaju nam da ih kuristimo u više funkcija (modula). Koristi se Global ključna riječ:

Global MojInt as Integer Global MojDatum as Date

• Šta se dešava kada deklarišemo varijablu sa istim imenom u više modula.

Više lokalnih varijabli shadow (mogu se preuzimati jer referenciraju na više raznoimenih modula. Na primjer, varijabla MojInt se definiše u Global modulu i deklarišu lokalno u rutini MyRoutine, dok u MyRoutine, lokalna varijabla MojInt je obuhvaćena.Izvan rutine MyRoutine globalna varijabla MojInt se takoñe izdvaja preko globalne deklaracije.

• Primjer Varijabli

Module1 Global X as Integer Form1 Form2 Dim Y as Integer Dim Z as Single Sub Routine1() Sub Routine3() Dim A as Double Dim C as String . . . . End Sub End Sub Sub Routine2() Static B as Double . . End Sub

Poglavlje 2 Osnove Visual Basic-a

55

Procedure Routine1 pristupa X, Y, i A (gubi vrijednost nakon prekida) Procedure Routine2 pristupa X, Y, i B (vraća vrijednost) Procedure Routine3 pristupa X, Z, i C (gubi vrijednost)

Štoperica Sada dodajemo kod aplikaciji. Pišemo kod za sve dogañaje . U ovoj aplikaciji postoje tri takva dogañaja: klik na svako od komandnih dugmadi. 1. Dupli klik bilo gdje na formi otvara kodni prozor. Ili izborom ‘View Code’ iz

prozora Project. 2. Kliknite na padajući meni u Object box i izaberite objekt sa imenom (general) .

Dio za unos procedure koji se starta na pošetku da definišemo varijable zove se (declarations) . Deklarišemo tri varijable:

Option Explicit Dim PocVrijeme As Variant Dim KrajVrijeme As Variant Dim SrednjeVrijeme As Variant Option Explicit izraz forsira deklarisanje svih varijabli. Ostale linije postavljaju

PocVrijeme , KrajVrijeme , i SrednjeVrijeme kao globalne varijable u programu.

3. Kliknite na komandu cmdStart u Objekt prozoru. Unesite odgovarajući kod za

datu proceduru.: Sub cmdStartVrijeme_Click () ‘Postaviti po četno vrijeme PocVrijeme = Now lblStart.Caption = Format(PocVrijeme, "hh:mm:ss") lblEnd.Caption = "" lblElapsed.Caption = "" End Sub Kada jednom startamo proceduru pročitamo trenutno vrijeme i ispišemo ga u

LblStart . Takoñe ispraznimo ostale labele. U kodu je svaka linija označena sa (‘) komentar.

Poglavlje 2: Osnove Visual Basic-a

56

4. Sada kodiramo cmdEndVrijeme dugme. Sub cmdEndVrijeme_Click () ‘Prona ći krajnje vrijeme i izra čunati proteklo vrijeme ‘Postaviti obe vrijednosti u labele KrajVrijeme = Now SrednjeVrijeme = KrajVrijeme - PocVrijeme lblEnd.Caption = Format(KrajVrijeme, "hh:mm:ss") lblElapsed.Caption = Format(SrednjeVrijeme, "hh:mm :ss") End Sub Kada kliknemo EndVrijeme komandno dugme pročitamo tekuće vrijeme

(EndVrijeme ), računa se proteklo vrijeme i postavljaju vrijednosti labelama koje prikazuju zadata vremena.

5. I finalno cmdEnd dugme. Sub cmdEnd_Click () End End Sub Ova rutina jednostavno završava aplikaciju kada se pritisne dugme Exit . 6. Kada kucate kod Visual Basic automatski provjerava sintaksu onoga što vi

ukucate (ako ukucate pogrešnu varijablu ne ćete nakon ukucavanja tačke (.) dobiti osobine te varijable).

7. Startate aplikaciju klikom miša na Run dugme sa menija alatki, ili pritiskom na

taster <F5>. Vrlo jednostavno, zar ne? 8. Upamtite aplikaciju Save your application – pogledaj Primjer na sledećoj

stranici. Koristite Save Project As opciju sa File menija. Obavezno upamtite i formu i projekt.

Poglavlje 2 Osnove Visual Basic-a

57

Primjer pam ćenja Visual Basic Aplikacije: Kada pamtite Visual Basic aplikaciju, tada trebate upamtiti i formu (.FRM) i programske module (.BAS ) i projekt (.VBP). U svakom slučaju sve upamtite u željeni direktorij. Postoje četiri Save komande dostupne preko File menija u Visual Basic-u: Save [Ime Forme ] Pamti tekuću formu u kojoj se trenutno nalazimo. Save [Ime Forme] As Pamti formu kojoj možemo promjeniti ime. Save Project Pamti sve forme i module u tekućem projektu. Save Project As Pamtimo Projekt sa novim imenom.

Poglavlje 2: Osnove Visual Basic-a

58

Primjer 2.2 Kalendar Zadatak je da kreirate program koji prikazuje tekuće vrijeme kao mjesec, dan i godinu. Program takoñe treba da ispisuje tekuće vrijeme, koje se čita svake sekunde (upotrebom Timer kontrole). Napravite formu da izgleda kao na Sl. 30. Poigrajte se sa osobinama objekta da izgledaju što ljepše.

Moj Izbor: Forma:

Sl. 30 Forma Kalendar nakon postavljanja osobina ob jekata

Osobine: Form frmCalendar : Caption = My Calendar BorderStyle = 1 - Fiksni okvir Vrijemer timDisplay : Interval = 1000 Label lblDan : Caption = Nedelja FontName = Times New Roman FontBold = True FontSize = 24 Label lblVrijeme : Caption = 00:00:00 FontName = Times New Roman FontBold = True

Poglavlje 2 Osnove Visual Basic-a

59

FontSize = 24 Label lblGodina : Alignment = 2 - Center Caption = 1998 FontName = Times New Roman FontBold = True FontSize = 24 Label lblBroj : Alignment = 2 - Center Caption = 31 FontName = Arial FontBold = True FontSize = 72 Label lblMjesec : Alignment = 2 - Center Caption = March FontName = Times New Roman FontBold = True FontSize = 24 General Deklaracije:

Option Explicit timDisplay Timer Doga ñaj:

Private Sub timDisplay_Vrijemer() Dim ToDan As Variant ToDan = Now lblDan.Caption = Format(ToDay, "dddd") lblMjesec.Caption = Format(ToDay, "mmmm") lblGodina.Caption = Format(ToDay, "yyyy") lblBroj.Caption = Format(ToDay, "d") lblVrijeme.Caption = Format(ToDay, "h:mm:ss ampm") End Sub

Poglavlje 2: Osnove Visual Basic-a

60

Primjer 2.3 ZBRAJANJE DVA BROJA

1. KORAK (crtanje objekta)

Koristite ovaj alat kako biste nacrtali objekte tipa Label (znakovi + i =)

Koristite ovaj alat kako biste nacrtali objekte tipa TextBox (3 identična objekta = 3 prazna okvira za unos teksta)

Koristite ovaj alat kako biste nacrtali objekte tipa ComandButton (upravljačko dugme)

2. KORAK - postavljanje svojstava obrasca (Form Properties)

Poglavlje 2 Osnove Visual Basic-a

61

Kliknuti na pozadinu obrasca, i postaviti slijedeće osobine (Pratite što se dogaña s obrascem):

Osobine (Properties) Vrijednost Objašnjenje

Name frmObrazac naziv varijable preko koje se pristupa objektu

BackColor &H00FFFFFF& odabrati bijelu boju za boju pozadine

Caption Zbrajanje tekst u naslovnici obrasca

3. KORAK - postavljanje osobina objekta tipa Label

Označite kao na prvoj slici prvi objekt tipa Label te mu postavite sljedeće Osobine:

Osobine (Properties)

Vrijednost Objašnjenje

Name lblPlus naziv varijable preko koje se pristupa objektu

BackStyle 0 - Transparent boja pozadine biće prozirna (nevidljiva)

Caption + znak koji želimo vidjeti u objektu (=)

Označite i drugi objekt tipa Label (Label2) te mu postavite slijedeće osobine:

Osobina (Properties)

Vrijednost Objašnjenje

Name lblJednako naziv varijable preko koje se pristupa objektu

BackStyle 0 - Transparent boja pozadine je prozirna (nevidljiva)

Caption = znak koji želimo vidjeti u objektu (=)

Font MS Sans Serif, Bold, Izbor vrste znaka, oblika i veličine

Poglavlje 2: Osnove Visual Basic-a

62

4. KORAK - postavljanje osobina objekta tipa TextBox

Označite kao na prvoj slici prvi objekt tipa TextBox te mu postavite slijedeće osobine:

Osobine (Properties)

Vrijednost Objašnjenje

Name txtBroj1 naziv varijable preko koje se pristupa objektu

Označite drugi objekt tipa TextBox te mu postavite sljedeće Osobine:

Osobine (Properties)

Vrijednost Objašnjenje

Name txtBroj2 naziv varijable preko koje se pristupa objektu

Označite treći objekt tipa TextBox te mu postavite slijedeća Osobine:

Osobine (Properties) Vrijednost Objašnjenje

Name txtRezultat naziv varijable preko koje se pristupa objektu

Text ostaviti prazno tj. izbrisati postojeći tekst

Locked True onemogućuje se unos podataka u

Poglavlje 2 Osnove Visual Basic-a

63

5. KORAK - postavljanje osobina objekta tipa CommandButton

Označite kao na slici objekt tipa CommandButton te mu postavite slijedeća Osobine:

Osobina (Properties) Vrijednost Objašnjenje

Name cmdPotvrda naziv varijable preko koje se pristupa objektu

Caption Izračunaj tekst vidljiv u objektu

Style 1 - Graphical omogućuje se prikaz grafike i boja u objektu

Sad bi trebali mati slijedeću sliku:

6. KORAK - pisanje programskog koda

Napravite dvostruki klik na objekt tipa CommandButton kojeg smo imenovali sa cmdPotvrda i dobit ćete nešto kao na slici:

Poglavlje 2: Osnove Visual Basic-a

64

Zatim u prostor izmeñu Private... i End Sub upišite slijedeće:

Private Sub cmdPotvrda_Click() txtRezultat.Text = txtBroj1.Text + txtBroj2.Text End Sub

Zatim kliknite na dugme kako biste pokrenuli izvoñenje programa. Naravno program se malo čudno ponaša, jer umjesto zbrajanja dogaña se spajanje. Vrijednosti u objektima tipa Textbox (txtBroj1 i txtBroj2) su inače tekstualnog tipa bez obzira jesu li u njih upisani samo brojevi ili ne, a operator + primijenjen nad tekstualnim operandima izvodi spajanje. Stoga, zaustavite

program pritiskom na dugme: i prepravite programski ispis u slijedeće:

Private Sub cmdPotvrda_Click() txtRezultat.Text = CDbl(txtBroj1.Text) + CDbl(txtBroj2.Text) End Sub

Pokrenemo li sad program, radit će.

Poglavlje 2 Osnove Visual Basic-a

65

Zaustavite program, i otkucajte slijedeće:

Private Sub cmdPotvrda_Click() txtRezultat = CDbl( txtBroj1) + CDbl( txtBroj2) End Sub

Kada pokrenemo program program će raditi , jer će se osobina TEXT u okviru za tekst funkcijom pretvoriti u broj. Sljedeći programski ispis je korak prema pravom programiranju jer u izrazima ne koristi direktno objekte i njihove osobine nego varijable kojima su prethodno pridružene vrijednosti pohranjene u objektima.

Private Sub cmdPotvrda_Click() Dim broj1 As Single, broj2 As Single, rezultat As Single broj1 = txtBroj1 broj2 = txtBroj2 rezultat = broj1 + broj2 txtRezultat = rezultat End Sub

Sljedeća izmjena obrañuje slučaj greške u programu:

Private Sub cmdPotvrda_Click() Dim broj1 As Single, broj2 As Single, rezultat As Single On Error GoTo pogreska broj1 = txtBroj1 broj2 = txtBroj2 rezultat = broj1 + broj2 txtRezultat = rezultat Exit Sub pogreska: MsgBox "Vjerojatno ste pogriješili unoseći znakove umjesto brojeva", vbOKOnly, "Pogreška" End Sub

Sačuvajte klikom na . Stvorite novi popis, uñite u njega, te sačuvajte formu (program tipa .FRM) a zatim i projekt (program tipa .VBP)

Poglavlje 2: Osnove Visual Basic-a

66

Primjer 2.4 SKRIVANJE - OTKRIVANJE OBJEKTA

1. KORAK (crtanje objekta)

Koristite ovaj alat kako biste nacrtali objekte tipa ComandButton (upravljačko dugme)

2. KORAK - postavljanje osobina obrasca (Form)

Kliknuti na pozadinu obrasca, i postaviti slijedeća Osobine (Pratite što se dogaña s obrascem):

Osobine (Properties) Vrijednost Objašnjenje

Name frmObrazac naziv varijable preko koje se pristupa objektu

BackColor &H00FFFFFF& odabrati bijelu boju za boju pozadine

Poglavlje 2 Osnove Visual Basic-a

67

3. KORAK - postavljanje osobina objekta tipa CommandButton

Označite kao na slici objekt tipa CommandButton te mu postavite slijedeća Osobine:

Osobine (Properties)

Vrijednost Objašnjenje

Name cmdDugme1 naziv varijable preko koje se pristupa objektu

Caption Sakrij me tekst vidljiv u objektu

Style 1 - Graphical omogućuje se prikaz grafike i boja u objektu

BackColor &H00FFFFC0& postavljanje boje pozadine objekta, možete je i sami proizvoljno odabrati

Označite i drugi objekt tipa CommandButton te mu postavite sljedeće Osobine:

Osobine (Properties)

Vrijednost Objašnjenje

Name cmdDugme2 naziv varijable preko koje se pristupa objektu

Caption Sakrij me tekst vidljiv u objektu

Style 1 - Graphical omogućuje se prikaz grafike i boja u objektu

BackColor &H00FFFFC0& postavljanje boje pozadine objekta, možete je i sami proizvoljno odabrati

Poglavlje 2: Osnove Visual Basic-a

68

Na kraju bi trebalo izgledati kao na slici::

4. KORAK - pisanje programskog slijeda

Napravite dvostruki klik mišem na objekt tipa CommandButton kojeg ste imenovali sa cmdDugme1 i dobićete nešto kao na slici:

Zatim u prostor izmeñu Private Sub cmdDugme1_Click() i End Sub upišite sljedeće:

Private Sub cmdDugme1_Click() ' Dogañaj klika na prvo dugme cmdDugme1.Visible = False ' Prvo dugme postaje nevidljivo cmdDugme2.Visible = True ' Drugo dugme postaje vidljivo End Sub

Napravite dvostruki klik mišem na objekt tipa CommandButton kojeg ste imenovali sa cmdDugme2 i dobićete nešto kao na slici:

Poglavlje 2 Osnove Visual Basic-a

69

Zatim u prostor izmeñu Private Sub cmdDugme2_Click() i End Sub upišite:

Private Sub cmdDugme2_Click() ' Dogañaj klika na drugo dugme cmdDugme1.Visible = True ' Prvo dugme postaje vidljivo cmdDugme2.Visible = False ' Drugo dugme postaje nevidljivo End Sub

5. KORAK - pokretanje programa

Kliknite na dugme kako biste pokrenuli izvoñenje programa. Klikajte na dugme.

Zaustavite program pritiskom na dugme: . Sačuvajte klikom na . Stvorite novi popis, uñite u njega, te sačuvajte obrazac (spis tipa .FRM) a zatim i projekt (spis tipa .VBP)

Poglavlje 2: Osnove Visual Basic-a

70

2.22 Visual Basic jezik Kratak Pregled • U prethodnom poglavlju smo uočili 3 glavna koraka u razvoju aplikacije u

Visual Basic-u:

1. Crtanje Interfejsa

2. Dodjeljivanje osobina kontrolama

3. Dodjeljivanja koda dogañajima

U ovom poglavlju ćemo se zadržati na dodjeljivanju koda dogañajima. Visual Basic Izrazi � Najjednostavniji izraz je dodjeljivanje. On sadrži ime varijable , nakon koje

slijedi operator (=), i nakon toga neka vrijednost. Primjeri : Start = Sada Explorer.Caption = "www.urc.bl.ac.yu" BrojBajtova = BrojBajtova * 8 Energija = Masa * Brzinasvijetla ^ 2 Visual Basic Operatori � Jednostavni operatori su aritmetički operatori:

Operator Operacija ^ Eksponent * / Množenje i Dijeljenje \ Dijeljenje cijelih brojeva Mod Modul + - Sabiranje i Oduzimanje

Poglavlje 2 Osnove Visual Basic-a

71

� Sastavljanje dva stringa, koristimo & simbol ili simbol +:

lblTime.Caption = "Tekuće vrijeme" & Format(Now, “hh:mm”) txtSample.Text = "Dobar Dan “ + “Vam želim”

• Postoji 6 načina poreñenja u Visual Basic-u:

Operator Poreñenje > Veće od < Manje od >= Veće ili jednako <= Manje ili jednako = Jednako <> Nije Jednako

� Rezultat poreñenja Boolean vrijednost (True or False ). � Koristi tri logi čka operatora

Operator Operacija Not Negacija And I Or ILI

� Not operator jednostavno negira operand. � And operator vraća logičku True ako su oba operanda True inače vraća False. � Or operator vraća True ako je jedan od operanada True, inače vraća False. 2.23 Visual Basic Funkcije � Visual Basic ima niz ugrañenih funkcija . Neke često korištene su: Funkcija Vrijednost koju vra ća Abs Apsolutna vrijednost broja Asc ASCII kod nekoh broja ili slova Chr Karakter koji odgovara ASCII kodu. Cos Cosinus ugla Date Tekući datum kao tekst Format Datum ili broj kovertovan u tekst

Poglavlje 2: Osnove Visual Basic-a

72

Left Izbora lijevi dio string-a Len Daje broj karaktera u stringu Mid Izbora dio stringa Now Tekuće vrijeme i datum Right Izbora string sa desna Rnd Slučajni broj Sin Sinus ugla Sqr Kvadratni korijen broja Str Broj kovertovan u tekst Time Tekuće vrijeme kao string Timer Broj sekundi Val Numerička vrijednost datog stringa

Primjer 2.5 Kalendar

1. Startamo novi projekt. Ideja je uraditi kalendar sa datumom i satom. 2. Postavićemo 4 labele i tajmer.

3. postavljamo osobine za pojedini objekt.

Poglavlje 2 Osnove Visual Basic-a

73

Form1: BorderStyle 1-Fiksni okvir Caption Moj Kalendar Name frmKalendar LblDan: Caption Subota LblMjesec: Caption Mart LblGodina: Caption 2007 LblBroj: Caption 31 TimDisplej: Interval 1000

5. Dodajemo kod dogañaju timDisplay_Timer() i to svakih 1000 µSec. Private Sub timDisplej_Timer() Dim Danas As Variant Danas = Now lblDan.Caption = Format(Danas, "dddd") lblMjesec.Caption = Format(Danas, "mmmm") lblGodina.Caption = Format(Danas, "yyyy") lblbroj.Caption = Format(Danas, "d") lblVrijeme.Caption = Format(Danas, "h:mm:ss ampm") End Sub

Ovaj kod preuzima vrijednost preko varijable Now

6. Uvodimo varijablu Dim Danas As Variant

7. Startamo program. Provjerimo da li sve radi . Upamtimo projekt.

Poglavlje 2: Osnove Visual Basic-a

74

Primjer 2.6 Mjera č Temperature

. postavljamo osobine za pojedini objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Mjerač Temperature Name frmTemp Label1: Caption Farenhajt Label2: Caption Celzius LblTempF: Caption 32 LblTempC: Caption 0

Poglavlje 2 Osnove Visual Basic-a

75

Shape1: FillStyle 7-Dijagonalne linije 4-Zaokružene ivice VsbTemp: Max -60 Min 120

1. Postavimo varijable koje će koristiti svi objekti:

Option Explicit Dim TempF As Integer Dim TempC As Integer

2. Dodajemo kod dogañaju vsbtemp_Change()

Private Sub vsbtemp_Change() TempF = vsbtemp.Value lblTempF.Caption = Str(TempF) TempC = CInt((TempF - 32) * 5 / 9) lblTempC.Caption = Str(TempC) End Sub

3. Dodajemo kod dogañaju vsbtemp_Scroll()

Private Sub vsbtemp_Scroll() TempF = vsbtemp.Value lblTempF.Caption = Str(TempF) TempC = CInt((TempF - 32) * 5 / 9) lblTempC.Caption = Str(TempC) End Sub

I kod promjene na klizaču , kao i kod pomjeranja klizača , oba dogañaja izazivaju promjenu vrijednosti temperature.

lblTempF.Caption = Str(TempF)

Poglavlje 2: Osnove Visual Basic-a

76

Primjer 2.7 Fleš Kartica

Zadatak aplikacije je da generiše probleme sabiranja. Forma:

Osobine: Form frmDodaj : BorderStyle = 1 - Fiksni okvir Caption = Flash Card Addition CommandButton cmdNext : Caption = &Sldeći problem Enabled = False CommandButton cmdExit : Caption = E&xit

Poglavlje 2 Osnove Visual Basic-a

77

TextBox txtOdgovor : FontName = Arial FontSize = 48 MaxLength = 2 Label lblOdgovor : Alignment = 2 - Center BackColor = &H00FFFF00& (Cyan) BorderStyle = 1 - Fiksni okvir FontName = MS Sans Serif FontBold = True FontSize = 24 FontItalic = True Label lblJednako : Alignment = 2 - Center BackColor = &H0000FFFF& (Yellow) BorderStyle = 1 - Fiksni okvir Caption = 0 FontName = Times New Roman FontBold = True FontSize = 36 Label Label1 : Alignment = 2 - Center Caption = Jednako: FontName = MS Sans Serif FontSize = 18 Label Label4 : Alignment = 2 - Center Caption = = FontName = Arial FontSize = 48 Label lblBroj2 : Alignment = 2 - Center FontName = Arial FontSize = 48 Label Label2 : Alignment = 2 - Center Caption = +

Poglavlje 2: Osnove Visual Basic-a

78

FontName = Arial FontSize = 48 Label lblBr1 : Alignment = 2 - Center FontName = Arial FontSize = 48 Kod: Generalne Deklaracije : Option Explicit Dim Sum As Integer Dim NumProb As Integer, NumRight As Integer cmdExit Click Dogañaj: Private Sub cmdExit_Click() End End Sub cmdNext Click Doga ñaj: Private Sub cmdNext_Click() 'generiše sledeći problem zbrajanja Dim Number1 As Integer Dim Number2 As Integer txtOdgovor.Text = "" lblOdgovor.Caption = "" NumProb = NumProb + 1 'Generiše slučajne brojeve za sabirke Number1 = Int(Rnd * 21) Number2 = Int(Rnd * 21) lblBr1.Caption = Format(Number1, "#0") lblBroj2.Caption = Format(Number2, "#0") 'Računa sumu Sum = Number1 + Number2 cmdNext.Enabled = False txtOdgovor.SetFocus End Sub

Poglavlje 2 Osnove Visual Basic-a

79

Forma Activate Doga ñajEvent : Private Sub Form_Activate() Call cmdNext_Click End Sub U trenutku pozivanja forme: Private Sub Form_Load() Randomize Timer NumProb = 0 NumRight = 0 End Sub txtOdgovor KeyPress Dogañaj: Private Sub txtOdgovor_KeyPress(KeyAscii As Integer ) Dim Ans As Integer 'Provjerava da li je unesen broj i vraća pritisnuti taster If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack Then Exit Sub ElseIf KeyAscii = vbKeyReturn Then 'Provjeri odgovor Ans = Val(txtOdgovor.Text) If Ans = Sum Then NumRight = NumRight + 1 lblOdgovor.Caption = "That's correct!" Else lblOdgovor.Caption = "Odgovor is " + Format(Sum, "#0") End If lblJednako.Caption = Format(100 * NumRight / NumProb, ##0") cmdNext.Enabled = True cmdNext.SetFocus Else KeyAscii = 0 End If End Sub

Poglavlje 2: Osnove Visual Basic-a

80

Primjer 2.8 Narudžba Pica

. postavljamo osobine za pojedini objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Naručivanje Pica Name frmPica OptVelicina: OptVelicina(0) Caption mala OptVelicina(1) Caption srednja OptVelicina(2) Caption Velika

Poglavlje 2 Osnove Visual Basic-a

81

ChkDodaci: ChkDodaci(0) Caption sir ChkDodaci(1) Caption biber ChkDodaci(2) Caption gljive ChkDodaci(3) Caption luk ChkDodaci(4) Caption Masline ChkDodaci(5) Caption kečap OptKora: OptKora(0) Caption Tanka kora OptKora(1) Caption Debela kora OptMjesto: OptMjesto(0) Caption Jede OptMjesto(1) Caption Nosi se

2. Postavimo varijable koje će koristiti svi objekti:

Option Explicit Dim VelPice As String Dim KoraPice As String Dim Mjesto As String

4. Dodajemo kod dogañaju CmdNaruci()

Private Sub CmdNaruci_Click()

Dim Message As String Dim i As Integer Message = Mjesto + vbCr Message = Message + VelPice + "Pizza" + vbCr Message = Message + KoraPice + vbCr For i = 0 To 5

Poglavlje 2: Osnove Visual Basic-a

82

If chkDodaci(I).Value = vbChecked Then Message = Message + chkDodaci(I).Caption + vbCr End If

Next I MsgBox Message, vbOKOnly, "Vasa Pizza"

End Sub

5. Dodajemo kod dogañaju CmdIzlaz

Private Sub Command2_Click() End End Sub

6. Dodajemo kod dogañaju Form_Load()

Private Sub Form_Load() VelPice = "Mala" KoraPice = "Tanka kora" Mjesto = "Jede u Restoranu" End Sub

Poglavlje 2 Osnove Visual Basic-a

83

Primjer 2.9 Program za Crtanje

.

postavljamo osobine za pojedini objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Forma Crtanje Name frmCrtanje Frame1: Caption Stil Frame2: Caption Boja OptStil(0): Caption Slobodni Stil Value True

Poglavlje 2: Osnove Visual Basic-a

84

OptStil(1): Caption Linija Value True OptStil(2): Caption Krug Value True HsbDebljina: Name HsbDebljina Value 1 Max 10 Min 1 Picturebox: Name PicSlika AutoRedraw True Label: Name LblUzorak LblDebljina: Name LblDebljina Caption 1 LblBoje(0): Name LblBoje Caption 0 LblBoje(1): Name LblBoje Caption 0 LblBoje(2): Name LblBoje Caption 0 HsbBoje(0): Max 255 Min 0

Poglavlje 2 Osnove Visual Basic-a

85

HsbBoje(1): Max 255 Min 0 HsbBoje(2): Max 255 Min 0

3. Postavimo varijable koje će koristiti svi objekti:

Option Explicit ' Deklariše varijable za sve podprograme i objekte Dim CentreX As Integer, CentreY As Integer Dim StartX As Integer, StartY As Integer Dim Started As Boolean

4. Promjena horizontalnog klizača boja

Private Sub hsbBoje_Change(Index As Integer) lblUzorak.BackColor = RGB(CInt(lblBoje(0).Captio n),_ CInt(lblBoje(1).Caption), CInt(lblBoje(2).Caption)) lblBoje(Index).Caption = hsbBoje(Index).Value picSlika.ForeColor = lblUzorak.BackColor End Sub

5. Pomjeranje horizontalnog klizača boja

Private Sub hsbBoje_Scroll(Index As Integer) lblUzorak.BackColor = RGB(CInt(lblBoje(0).Captio n), CInt(lblBoje(1).Caption), CInt(lblBoje(2).Caption)) lblBoje(Index).Caption = hsbBoje(Index).Value picSlika.ForeColor = lblUzorak.BackColor End Sub

6. Promjena horizontalnog klizača debljine linije

Private Sub HsbDebljina_Change() lblDebljina.Caption = HsbDebljina.Value picSlika.DrawWidth = HsbDebljina.Value End Sub

Poglavlje 2: Osnove Visual Basic-a

86

7. Pomjeranje miša u okviru za sliku na dole

Private Sub picSlika_MouseDown(Button As Integer, S hift As Integer, X As Single, Y As Single) Dim DrawingStyle As Integer DrawingStyle = GetStil() If Button = vbLeftButton Then Select Case DrawingStyle Case 0 ' Slobodna linija picSlika.PSet (X, Y) Case 1 ' Linija StartX = X StartY = Y Case 2 ' Krug ' Odreñuje centar kruga CentreX = X CentreY = Y End Select Else picSlika.Cls End If End Sub

8. Pomjeranje miša u okviru okvira za sliku Private Sub picSlika_MouseMove(Button As Integer, S hift As Integer, X As Single, Y As Single) Static OldX As Integer, OldY As Integer Dim Radius As Double Dim DrawingStyle As Integer DrawingStyle = GetStil() ' Crta ako je lijevo dugme miša pritisnuto If Button = vbLeftButton Then Select Case DrawingStyle Case 0 ' slobodna linija picSlika.Line -(X, Y)

Poglavlje 2 Osnove Visual Basic-a

87

Case 1 ' Linija ' Mijenja mod crtanja picSlika.DrawMode = vbInvert ' Ako crtate novu liniju morate izbr isati staru If Started = True T hen picSlika.Line (StartX, StartY)- (OldX, OldY) End If picSlika.Line (StartX, StartY)-(X, Y) Started = True ' Upamti teku će koordinate miša OldX = X OldY = Y Case 2 ' Krug ' Mijenja mod crtanja picSlika.DrawMode = vbInvert ' Ako crtate novu liniju morate izbr isati staru If Started = True Then ' Računa radijus kruga preko pitagorine teoreme Radius = Sqr((OldX - CentreX) ^ 2 + (OldY - C entreY) ^ 2) picSlika.Circle (CentreX, Centr eY), Radius End If ' Crta novi krug Radius = Sqr((X - CentreX) ^ 2 + (Y - CentreY) ^ 2) picSlika.Circle (CentreX, CentreY), Radius Started = True ' Upamti teku će koordinate miša OldX = X OldY = Y End Select End If End Sub

9. Pomjeranje miša u okviru okvira za sliku na dole Private Sub picSlika_MouseUp(Button As Integer, Shi ft As Integer, X As Single, Y As Single) Dim Radius As Double Dim DrawingStyle As Integer DrawingStyle = GetStil() If Button = vbLeftButton Then

Poglavlje 2: Osnove Visual Basic-a

88

Select Case DrawingStyle Case 1 ' Linija ' Mijenja mod crtanja picSlika.DrawMode = vbCopyPen picSlika.Line (StartX, StartY)-(X, Y) Case 2 ' Circle ' Mijenja mod crtanja picSlika.DrawMode = vbCopyPen ' Koristi pitagorinu teoremu za radi jus Radius = Sqr((X - CentreX) ^ 2 + (Y - CentreY) ^ 2) picSlika.Circle (CentreX, CentreY), Radius End Select End If Started = False End Sub

10. Funkcija za stil crtanja

Private Function GetStil() As Integer Dim Counter As Integer For Counter = 0 To 2 If optStil(Counter).Value = True Then GetStil = Counter End If Next Counter End Function

Poglavlje 2 Osnove Visual Basic-a

89

Primjer 2.10 Studentov Profil

. postavljamo osobine za pojedini objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Studentov profil Name frmStudent Label1: Caption Ime Frame1: Caption Pol Frame2: Caption Datum rodjenja

Poglavlje 2: Osnove Visual Basic-a

90

Frame3: Caption Slika Frame4: Caption Koraken studija Optsex(0): Caption Muški Optsex(1): Caption Ženski LblMonth: Caption Appearance 1-3D LblDay: Caption Appearance 1-3D LblYear: Caption Appearance 1-3D VsbMonth: Value 1 VsbDay: Value 1 VsbYear: Value 1 Optlevel(0): Caption Prvi Optlevel(1): Caption Drugi Optlevel(2): Caption Treći

Poglavlje 2 Osnove Visual Basic-a

91

Optlevel(3): Caption Četvrti Optlevel(4): Caption Peti Optlevel(5): Caption Šesti Value True Imgstudent: Apperance 1-3D Border Style 1-Fiksni okvir Strach True CmdShow: Caption Prikaži Profil CmdNew: Caption Novi Profil CmdLoad: Caption Prikaži Sliku CmdExit: Caption EXIT TxtName: Caption Appirence 1-3d

1. Postavimo varijable koje će koristiti svi objekti:

Option Explicit Dim Months(12) As String Dim Days(31) As String Dim Grade As String

2. Postavimo kod za komandno dugme EXIT Private Sub cmdExit_Click() End End Sub

Poglavlje 2: Osnove Visual Basic-a

92

3. Postavimo kod za komandno dugme PRIKAŽI SLIKU

Private Sub cmdLoad_Click() cdlBox.ShowOpen imgStudent.Picture = LoadPicture(cdlBox.FileName) End Sub

4. Postavimo kod za komandno dugme NEW Private Sub cmdNew_Click() txtName.Text = " " imgStudent.Picture = LoadPicture("") End Sub

5. Postavimo kod za komandno dugme Prikaži profil Private Sub cmdShow_Click() Dim Is_Leap As Integer Dim Msg As String, Age As Integer, Pronoun As Strin g Dim M As Integer, D As Integer, Y As Integer If vsbMonth.Value = 2 And ((vsbYear.Value Mod 4 = 0 And vsbYear.Value Mod 100 <> 0) Or vsbYear.Value Mod 40 0 = 0) Then Is_Leap = 1 Else Is_Leap = 0 End If If vsbDay.Value > Days(vsbMonth.Value) + Is_Leap Th en MsgBox "Samo" + Str(Days(vsbMonth.Value) + Is_Leap) + "dana u" + Months(vsbMonth.Value), vbOKOnly + vbCritical, "Pogresan datum rodjenja" Exit Sub End If M = Val(Format(Now, "mm")) D = Val(Format(Now, "dd")) Y = Val(Format(Now, "yyyy")) Age = Y - vsbYear If Age < 0 Then MsgBox "Datum rodjenja je prije tekuceg datuma", vb OKOnly + vbCritical, "Pogresan datum rodjenja" Exit Sub End If If txtName.Text = "" Then

Poglavlje 2 Osnove Visual Basic-a

93

MsgBox "Profil zahtjeva ime.", vbOKOnly + vbCritical , "Nije uneseno ime" Exit Sub End If Msg = txtName.Text + " je student" + Grade + " Kora kena" + vbCr If optSex(0).Value = True Then Pronoun = "On" Else Pronoun = "Ona" End If Msg = Msg + Pronoun + " je" + Str(Age) + " godina s tar" + vbCr MsgBox Msg, vbOKOnly, "Profil studenta" End Sub

6. Postavimo kod za pozivanje osnovne forme Private Sub Form_Load() Months(1) = "Januar": Days(1) = 31 Months(2) = "Februar": Days(2) = 28 Months(3) = "Mart": Days(3) = 31 Months(4) = "April": Days(4) = 30 Months(5) = "Maj": Days(5) = 31 Months(6) = "Jun": Days(6) = 30 Months(7) = "Juni": Days(7) = 31 Months(8) = "Avgust": Days(8) = 31 Months(9) = "Septembar": Days(9) = 30 Months(10) = "Oktobar": Days(10) = 31 Months(11) = "Novembar": Days(11) = 30 Months(12) = "Decembar": Days(12) = 31 lblMonth.Caption = Months(vsbMonth.Value) lblDay.Caption = Str(vsbDay.Value) lblYear.Caption = Str(vsbYear.Value) Grade = "prvi" End Sub

7. Postavimo kod za opcijska dugmad optLevel Private Sub optLevel_Click(Index As Integer) Select Case Index Case 0 Grade = " prvi"

Poglavlje 2: Osnove Visual Basic-a

94

Case 1 Grade = " drugi" Case 2 Grade = " treci" Case 3 Grade = " cetvrti" Case 4 Grade = " peti" Case 5 Grade = " sesti" End Select End Sub

8. Postavimo kod za vertikalni skrol bar vsbDay Private Sub vsbDay_Change() iblDay.Caption = Str(vsbDay.Value) End Sub

9. Postavimo kod za vertikalni skrol bar vsbMonth Private Sub vsbMonth_Change() lblMonth.Caption = Months(vsbMonth.Value) End Sub

10. Postavimo kod za vertikalni skrol bar vsbYear Private Sub vsbYear_Change() lblYear.Caption = Str(vsbYear.Value) End Sub

Poglavlje 2 Osnove Visual Basic-a

95

Primjer 2.11 Planer Leta

. postavljamo osobine za pojedini objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Planer Leta Name frmPlaner Label1: Caption Grad Destinacija Label2: Caption Lokacija Sjedišta Label3: Caption Jelovnik LstCities: Caption Combo1: Name Cbosjediste CboMeal:

Poglavlje 2: Osnove Visual Basic-a

96

Style 1-Simple Combo CmdAssign: Caption Rezerviši CmdExit: Caption Izlaz

1. Postavimo kod za komandu Rezervisi.

Private Sub cmdRezervisi_Click() Dim Message As String Message = "Odredište” + lstCities.Text + vbCr Message = Message + "Mjesto za sjedenje:" + _

cboSjediste.Text + vbCr Message = Message + "Jelo:" + cboMeal.Text + vb Cr MsgBox Message, vbOKOnly + vbInformation, "Vaš Izbor" End Sub

2. Postavimo kod za komandu Izlaz

Private Sub cmdIzlaz_Click() End End Sub

3. Postavimo kod za poziv forme Private Sub Form_Load() lstCities.Clear lstCities.AddItem "Beograd" lstCities.AddItem "Los Angeles" lstCities.AddItem "Zagreb" lstCities.AddItem "Tivat" lstCities.AddItem "Bakersfield" lstCities.AddItem "Oakland" lstCities.AddItem "Sacramento" lstCities.AddItem "San Jose" lstCities.AddItem "San Francisko" lstCities.AddItem "Eureka" lstCities.AddItem "Eugene" lstCities.AddItem "Portland" lstCities.AddItem "Spokane"

Poglavlje 2 Osnove Visual Basic-a

97

lstCities.AddItem "Seattle" lstCities.ListIndex = 0 cboSeat.AddItem "Na po četku" cboSeat.AddItem "Sredina" cboSeat.AddItem "Kraj Prozora" cboSeat.ListIndex = 0 cboMeal.AddItem "Piletina" cboMeal.AddItem "Šnicla" cboMeal.AddItem "Vegetarijanska" cboMeal.AddItem "Vo ćna Plata" cboMeal.Text = "Ne preferiram Ništa" End Sub

2.24 Kreiranje složenijeg programa – kalkulator Zadatak ove vježbe je kreiranje programa za jednostavne matematičke operacije sa dva upisana broja od strane korisnika. Prvo ćemo izraditi program samo za zbrajanje dva broja, a nakon toga ga proširiti sa ostalim aritmetičkim operacijama. Program će u prvom koraku imati dva okvira s tekstom, tri natpisa i dva komandna dugmeta. Natpis (Label ), kao element interfejsa, može samo prikazivati tekst odreñen programskim kodom (ne može ga promijeniti korisnik kao kod okvira s tekstom). Neke od osobina natpisa su:

Alignment -poravnavanje naslova unutar okvira,

Appearance -izbore 3-D ili 2-D izgled,

AutoSize -ako je vrijednost True veličina naslova se prilagoñava tekstu, a za vrijednost False veličina naslova ostaje kao kad je kreirana,

BorderStyle -odreñuje vrstu okvira,

Caption -tekst koji se prikazuje kao natpis,

Font - postavlja vrstu slova natpisa, stil i veličinu.

Poglavlje 2: Osnove Visual Basic-a

98

U okvire s tekstom potrebno je upisati brojeve, a natpisi će služiti za prikaz matematičkih operatora i rezultata. Komandna dugmad služe za izračunavanje matematičkog izraza te za kraj rada programa (Sl. 31).

Sl. 31 Vrijednosti za osobi ne objekta

Poglavlje 2 Osnove Visual Basic-a

99

Tabela 3 Osobine forme Form1 i objekata na njoj

Form1 Name Caption Border Style

FrmKalkulator Kalkulator 1-Fiksni okvir

Text1 Name Text Font FontSize Alignment

txtPrvi [prazno] Arial 48 Center

Text2 Name Text Font FontSize Alignment

txtDrugi [prazno] Arial 48 Center

Label2 Caption Font Fontsize Alignment

= Arial 48 Center

Label3 Name Caption BorderStyle BackColor Alignment Font Fontsize Alignment

lblRezultat [prazno] 1-Fiksni okvir &H0000FFFF& (bijela) Center Arial 48 Center

Command1 Name Caption

cmdIzračunaj &Izračunaj

Command2 Name Caption

cmdIzlaz &Izlaz

Nakon unošenja vrijednosti u prozor s osobinama, forma programa izgleda kao na Sl. 32. Uočite podcrtana slova na komandnim dugmadima (npr. Start) što se definiše unosom znaka & ispred slova koje želimo da bude podcrtano prilikom definisanja vrijednosti osobine naslova (Caption). Koristeći pritisak na tipku ALT i podcrtano slovo (npr. ALT + S za Start), možemo pokrenuti komandno dugme pomoću tastera.

Poglavlje 2: Osnove Visual Basic-a

100

Sl. 32 Izgled forme nakon postavljanja vrijednosti o sobina

Programski kod komandnog dugmeta cmdIzracunaj za dogañaj Click je kako slijedi:

Private Sub cmdIzracunaj_Click()

lblRezultat.Caption = CInt(txtPrvi.Text) + CInt(txtD rugi.Text)

End Sub Izrazom Private deklariše se lokalna varijabla koja je dostupna unutar procedure ili modula u kojem je deklarisana. Izrazom Public deklariše se varijabla dostupna iz svih modula. Na nivou modula ne postoji razlika izmeñu naredbi Private i Dim, ali preporučuje se Private, jer je u stvarnoj suprotnosti s naredbom Public i čini kod razumljivijim. U okvir s tekstom upisujemo tekst koji treba pretvoriti u tip Integer za računanje. Visual Basic sadrži nekoliko programskih funkcija za pretvaranje vrijednosti iz jednog tipa podatka u drugi. Za pretvaranje vrijednosti u tip Integer, koristi se funkcija CInt sa sintaksom: CInt(txtPrvi.Text)

Poglavlje 2 Osnove Visual Basic-a

101

2.25 Funkcije pretvaranja tipova podataka Funkcija pretvaranja pretvara vrijednost izraza u ti p CBool Boolean CByte Byte CCur Currency CDate Date CDbl Double CInt Integer CLng Long CSng Single CStr String CVar Variant CVErr Error Vrijednosti koja se proslijeñuje funkcijama za pretvaranje moraju biti ispravne za tip podatka u koji će biti pretvorene ili će se pojaviti pogreška. Na primjer, ako pokušate pretvoriti tip Long u tip Integer, Long mora biti unutar opsega definisanog za tip podatka Integer. Definisan je tekst natpisa lblRezultat kao rezultat zbira teksta okvira s tekstom txtPrvi i txtDrugi prethodno pretvorenih u tip Integer. Klikom na komandno dugme cmdIzlaz završavamo rad s programom. Programski kod za komandno dugme cmdIzlaz za dogañaj Click je kako slijedi: Private Sub cmdIzlaz_Click() End End Sub

Poglavlje 2: Osnove Visual Basic-a

102

Sl. 33 Rad programa

Poglavlje 3 Visual Basic alati

103

Osnovi programiranja

(Visual Basic 6.0) Visual Basic alati

3. Visual Basic Alati Pregled: • U ovom poglavlju ćemo razjasniti alate u Visual Basic alatima(toolbox).

Pogledaćemo poznate i često korištene alate , kao i neke nove. 3.1 Poruka ( MsgBox) � Jedna od najboljih funkcija Visual Basic-a je poruka (Message box) . Poruka

je način ispisa podataka u posebnom prozoru , sa dodatnom ikonom i skupom komandnih dugmadi. Odgovor korisnika je da klikne na neko od ponuñenih dugmadi.

� Forma komande poruke je:

MsgBox Poruka, Tip, natpis Gdje je

Poruka Tekst poruka koja će se ispisati Tip Tip poruke Natpis Tekst u dijelu za naslov unutar poruke

Ovdje nemamo kontrolu gdje će se prikazati poruka. � Poruka vraća cijelobrojnu vrijednost (zavisno od pritisnutog dugmeta od strane korisnika). Primjer upotrebe (Vraća odgovarajuću vrijednost):

Dim Odgovor as Integer Odgovor = MsgBox (Poruka, Tip, Natpis)

Poglavlje 3 Visual Basic alati

104

• Tip argument odreñuje kakav tip poruke će biti.

Vrijednost Zna čenje Simboli čna vrijednost 0 OK dugme vbOKOnly 1 OK/Cancel dugmad vbOKCancel 2 Abort/Retry/Ignore dugmad vbAbortRetryIgnore 3 Yes/No/Cancel dugmad vbYesNoCancel 4 Yes/No dugmad vbYesNo 5 Retry/Cancel dugmad vbRetryCancel

• Druga komponenta Tip odreñuje ikonu koja će se ispisati unutar prozora poruke.

Vrij. Zna čenje Simboli čka vrijednost 0 Nema ikone (None) 16 Kritična ikona vbCritical 32 Upitnik vbQuestion 48 Upozorenje vbExclamation 64 Informacija vbInformation

� Treća komponenta argumenta Tip specificira prekidačko dugme koje će biti tekuće postavljeno (default) (i.e. pritisak Enter je isti kao kao i kliknuti mišem):

Vrij. Zna čenje Simboli čka vrijednost 0 1 dugme vbDefaultButton1 256 Drugo dugme vbDefaultButton2 512 Treće dugme vbDefaultButton3

� Četvrta komponenta i finalna je Type sa svojim modalitetima :

Vrij. Zna čenje Simboli čka vrijednost 0 Mod Aplikacije vbApplicationModal 4096 Sistemski mod vbSystemModal

Poglavlje 3 Visual Basic alati

105

U Aplikacijskom Modu , korisnik mora da odgovori na pitanje u prozoru i onda da nastavi sa tekućom aplikacijom. Ako je prozor System Modal , sve aplikacije su suspendovane dok korisnik ne odgovori na pitanje.

� Za svaku opciju u Type , postoji numerička vrijednost i simbolička konstanta. Sugestija je da simboličke konstante ne koristimo kombinovano sa numeričkim vrijednostima. Preglednije je uzeti vbOKOnly nego 0 vrijednost koju ona numerički predstavlja.

� Vrijednost koju vraća funkcija Poruka box kada pritisnemo dugme je ispisana u sledećoj tabeli:

Vrij. Zna čenje Simboli čka vrijednost 1 OK dugme izabrano vbOK 2 Cancel dugme izabrano vbCancel 3 Abort dugme izabrano vbAbort 4 Retry dugme izabrano vbRetry 5 Ignore dugme izabrano vbIgnore 6 Yes dugme izabrano vbYes 7 No dugme izabrano vbNo

• Poruka Box Primjer:

MsgBox “Ovo je Primjer message box”, vbOKCancel + vbInformation, “Poruka Box Primjer”

� Poruke tipa MsgBox se koriste za pitanje prije pamćenja fajla ili neka druga

pitanja u programu..

Poglavlje 3 Visual Basic alati

106

U message box možete da dodate ikonu pored poruke. Postoji četiri tipa ikona u VB, prikazane su u tabeli.

Vrednost Imenovana konstanta Ikona

16 vbCritical

32 vbQuestion

48 vbExclamation

64 vbInformation

Objektni Metodi • U prethodnom radu vidimo da svi objekti imaju svoje osobine i dogañaje koji

asociraju na te objekte. Treći koncept pridruživanja objektima zove se method . Metod je procedura ili funkcija koja dodjeljuje neke akcije objektu.

• Format promjene osobina na ovaj način je;

ObjectName.Method {opcioni arumenti} Objekt Form • Form je forma ili korisnički interfejs koga crtamo. Ona je centralna tačka

razvoja Visual Basic aplikacije. • Form Osobine:

Appearance Selektuje 3-D ili flat izgled. BackColor Postavlja pozadinsku boju BorderStyle Postavlja okvir forme da je fiksna ili promjenljiva. Caption Postavlja natpis u prozoru window. Enabled ako je True, dopušta Formi da odgovori na

pomjeraj ili klik miša ili pritiska na tastaturi; ako je False, onemogućava prethodno.

Poglavlje 3 Visual Basic alati

107

Font Postavlja tip fonta, stil, veličinu. ForeColor Postavlja boju teksta i grafike. Picture Postavlja bitmap sliku u Formu. Visible Ako je False, forma se ne vidi.

• Form Dogañaji:

Activate Kada je forma aktivna aktivira se ovaj dogañaj. Click Click dogañaj se aktivira kada kliknemo na

formu. DblClick DblClick dogañaj se aktivira kada dva puta

uzastopno kliknemo na formu. Load Kada se pozove forma aktivira se doga]aj

Form_Load . To je dobro mjesto za inicijalizaciju varijabli za cijelu formu.

• Form Metode:

Cls Čisti sve grafičke i tekst podatke sa forme. Pri tom ne čisti ni jedan objekt.

Print Štampa tekst string sa forme.

Primjeri:

frmPrimjer.Cls ' čisti formu frmPrimjer.Print "Ovo će se oštampati na formi "

3.2 Komandna dugmad (Command button)

• Vidjeli ste komandno dugme (command button) i u prethodnom poglavlju.

Ovo je najčešće korištena kontrola. Koristi se da startamo, prekinemo ili završimo neki proces..

• Osobine komandnog dugmeta:

Appearance Selektuje 3-D ili flat izgled. Cancel Dozvoljava izbor dugmeta Esc Caption String koji se ispisuje na dugme. Default Dozvoljava izbor dugmeta sa Enter

Poglavlje 3 Visual Basic alati

108

Font Postavlja tip fonta, stil i veličinu. • Dogañaji nad komandnim dugmetom:

Click Dogañaj startan kada je dugme izabrano ili klikom miša i pritiskom na odgovarajući pristupni taster.

3.3 Labele (Label Boxes)

• labela (label box) je kontrola koja ispisuje tekst koji korisnik može direktno

Mijenjati ili preko programa. • Osobine Labele:

Alignment Podešava tekst u okviru (lijevo, desno, sa obje strane, centar).

Appearance Selektuje 3-D ili flat izgled. AutoVel Ako je istina labela se može proširivati na

osnovu teksta koji je unesen u nju, a ako nije istina ona zadržava istu veličinu.

BorderStyle Odreñuje vrstu okvira Caption Tekst koji će biti ispisan na labeli Font Postavlja vrstu i veličinu fonta WordWrap Radi zajedno sa AutoVel osobinom. Ako je

AutoVel = True , WordWrap = True , tada se tekst prenosi u drugi red u skladu sa veličinom labele.

• Dogañaji labele:

Click Dogañaj kad se pritisne dugmetom miša kada je pokazivač miša na labeli

DblClick Dogañaj kad se pritisne duplim dugmetom miša kada je pokazivač miša na labeli.

Poglavlje 3 Visual Basic alati

109

3.4 Tekst okvir

• Tekst ovir se koristi da ispiše informaciju unesenu u toku dizajna programa ili

u toku rada programa ili unutar koda. Unesena informacija se može promjeniti.

• Osobine tekst okvira:

Appearance Selektuje 3-D ili ravan izgled . BorderStyle Odreñuje tip okvira. Font Postavlja vrstu fonta , stil, veličinu. MaxLength Ograničava dužinu ispisanog teksta (0 vrijednost

kaže da je tekst neograničen). MultiLine Specificira da li tekst okvir ima jedu ili više linija. PasswordChar Sakriva tekst sa jednim karakterom. ScrollBars Specificira tip klizača za pomjeranje teksta. SelLength Dužina izabranog teksta. SelStart Startna pozicija izabranog teksta. SelText Izabrani tekst. Text Ispisani tekst.

• Dogañaji tekst okvira:

Change Starta se kada se promijeni osobina Text . LostFocus Starta se kada korisnik napusti tekst okvir. Tada

najlakše provjerimo sadržaj tekst okvira. KeyPress Starta se kada je pritisnut taster sa tastature

kada se nalazimo u unosu teksta u tekst okvir. • Metode tekst okvira:

SetFocus Postavlja kursor u odrñeni okvir teksta.

Primjer

txtPrimjer.SetFocus ' pomjera kursor na tekst okvir koji se zove txtPrimjer

Poglavlje 3 Visual Basic alati

110

Primjer 3.1 Unos Šifre 1. Startate novi projekt. Ideja ovog projekta je da pita korisnika za unos šifre.

Ako je tačna treba da se pojavi poruka da je korisnik unijeo ispravnu šifru. 2. Postavićemo 2 komandna dugmeta , labelu i tekst okvir na našu formu:

3. Postavimo osobine za svaki objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Provjera šifre Name frmUnossifre Label1: Alignment 2-Center BorderStyle 1-Fiksni okvir Caption Unesite Šifru: FontVel 10 FontStyle Bold Text1: FontVel 14 FontStyle Regular Name txtSifra PasswordChar * Tag [Kad koristite šifru] Text [Blank]

Poglavlje 3 Visual Basic alati

111

Command1: Caption &Provjera Default True Name cmdValid Command2: Cancel True Caption I&zlaz Name cmdIzlaz

Forma sada izgleda kao na slici:

4. Dodijeli kod komandnom dugmetu cmdProvjera_Click event. Private Sub cmdProvjera_Click() 'Ova procedura provjerava ulaznu šifru Dim Response As Integer If txtSifra.Text = txtSifra.Tag Then 'Ako je u redu ispiši poruku MsgBox "Vaša šifra je u redu!", vbOKOnly + vbExc lamation, "Pristup

Dozvoljen" Else 'Ako nije u redu treba dati opciju da se starta po novo Response = MsgBox("Nekorektna šifra", vbRetryCan cel + vbCritical,

"Pristup Nije dozvoljen") If Response = vbRetry Then txtSifra.SelStart = 0 txtSifra.SelLength = Len(txtSifra.Text) Else End

Poglavlje 3 Visual Basic alati

112

End If End If txtSifra.SetFocus End Sub Kod provjerava ulaznu šifru da vidi da li odgovara upamćenoj vrijednosti. Ako

odgovara ispisuje poruku o pristupu, a ako ne odgovara poruku da je pristup zabranjen. Notiramo korišćenje SelLength i SelStart da označi nekorektan unos. To omogućava korisniku da kuca preko nekorektnog unosa ponovo.

5. Dodijelićemo kod aktiviranju forme Form_Activate . Private Sub Form_Activate() txtSifra.SetFocus End Sub 6. Dodijelićemo kod komandnom dugmetu cmdIzlaz_ Click . Private Sub cmdIzlaz_Click() End End Sub 7. Startamo program. Provjerimo obadvije opcije. Upamtimo projekt. 3.5 Okvir za provjeru (Check Boxes)

• Okvir za provjeru (Check boxes) omogućava nam da izaberemo iz liste

potencijalnih izbora. Neki , svi ili nijedan izbor u grupi budu izabrani.. • Osobine Okvira za provjeru:

Caption Ispisuje natpis ispred okvira. Font postavlja font, veličinu itd. Value Pokazuje da li je dugme nije izabrano (0,

vbUnchecked), izabrano (1, vbChecked),.

• Dogañaji okvira za provjeru:

Click Postavlja se kada kliknemo na okvir.

Poglavlje 3 Visual Basic alati

113

3.6 Opcijsko dugme (Option button):

• Opcijsko dugme (Option buttons) omogućava da izaberemo jedan od izbora

ponuñenih preko dugmadi. • Osobine Opcijskog dugmeta (Option button):

Caption Unos teksta pored dugmeta. Font postavlja font, veličinu itd. Value Indicira da li je izabrano (True) ili nije (False).

Samo jedno dugme može biti izabrano.

• Dogañaji Opcijskog dugmeta (Option button):

Click Postavlja se kada kliknemo na dugme. Osobina Value se automatski Mijenja u Visual Basic-u.

3.7 Polja • Mi u suštini radimo sa varijablama koje imaju jedinstveno ime. Visual Basic

ima mogućnost korištenja više-dimenzionalnih varijabli , ili polja. Za pošetak ćemo koristiti polja sa fiksnim dimenzijama.. • Polje se deklariše imenom i dimenzijom koja se navodi u zagradi.:

Dim Polje(9) as Integer

Ako hoćemo varijablu koja će biti dostupna i kada izañemo iz procedure koristimo ključnu riječ Static :

Static Polje(9) as Integer

Generalna deklaracija polja je:

Dim Polje(9) as Integer a, za nivo modula global deklaracija je:

Global Polje(9) as Integer

Poglavlje 3 Visual Basic alati

114

• Indeks polja počinje od 0 i završava se sa unesenom vrijednošću. 3.8 Kontrolna polja (Control Arrays) • Za potrebu kontrola često definišemo kontrolna polja (control arrays) . Npr.

Opciona dugmad se često grupišu u kontrolno polje. • Kontrolna polja su najbolji način da grupišemo kontrole koje vrše jedinstvenu

akciju. Svi dogañaji dostupni jednoj kontroli dostupni su i kontrolnom polju. Jedina razlika je što kontrolna polja sadrže indeks koji nam omogućuje čitanje takvih polja.

• Još jedna prednost kontrolnih polja je što možete dodati ili izbrisati element polja u toku rada programa. Pri tome koristimo komande Load i Unload .

• Postoje dva načina za kreiranje kontrolnog polja:

1. Kreirate individualnu kontrolu i postavite odgovarajuće osobine. Kopirate kontrolu i postavite kopiju na drugo mjesto. Visual Basic će vas pitati da li želite polje kontrola i ako odgovorite sa Yes kreiraće polje kontrola sa jedinstvenim imenom.

2. Kreirate sve kontrole pojedinačno i promijenite im ime u jedno jedinstveno.

Visual Basic će vas pitati želite li polje i postaviti kontrolno polje.. • Jednom kada kreiramo kontrolno polje , elementi polja će biti vezani za ime i

indeks. Npr. Postavite osobinu Caption naprimjer Primjer(6) labele:

lblPrimjer(6).Caption = “Ovo je primjer”

3.9 Okviri (Frames)

• Vidimo iz prethodnog da opciona dugmad i kontrolni okviri rade kao grupe.

Okviri (Frames) nam omogućuju način da i fizički grupišemo odgovarajuće kontrole..

• Prvo napravimo okvir (Frame) . Tada odgovarajuće kontrole crtamo u Okvir.

Moguće je kontrole i dodavati kopiranjem komandom (Copy-Paste) .

Poglavlje 3 Visual Basic alati

115

• Osobine Okvira (Frame) :

Caption Naslov na okviru. Font postavlja font, veličinu itd.

Primjer 3.2 Narudžba Pica

1. Startate novi projekt. Napravićemo formu da se pica može naručiti sa svim

elementima i poslati narudžbu jednim klikom na komandu.. 2. Crtamo formu. Prvo ćemo nacrtati 3 opciona dugmeta,i okružiti je sa jednim

okvirom Frame1 ,a poslije još 2 opciona dugmeta i okvir Frame2 , još 2 opciona i okvir Frame 3 i nakon toga 6 dugmadi za provjeru. Dodaćemo i 2 komandna dugmeta.

3. Postavićemo osobine svake kontrole posebno.

Form1: BorderStyle 1-Fiksni okvir Caption Narudžba Pica Name frmPica Frame1: Caption Veličina

Poglavlje 3 Visual Basic alati

116

Frame2 : Caption Debljina Kore Frame3 Caption Prelijevi Option1 : Caption Mala Name optVel Value True Option2 : Caption Srednja Name optVel (yes, kreira kontrolno polje) Option3 : Caption Velika Name optVel Option4 : Caption Tanka Kora Name optKora Value True Option5 : Caption Debela Kora Name optKora (yes, kreira kontrolno polje) Option6 : Caption Jede Name optGdje Value True Option7 : Caption Nosi Name optGdje (yes, kreira kontrolno polje) Check1 : Caption Sir Name chkTop

Poglavlje 3 Visual Basic alati

117

Check2 : Caption Gljive Name chkTop (yes, kreira kontrolno polje) Check3 : Caption Masline Name chkTop Check4 : Caption Biber Name chkTop Check5 : Caption Luk Name chkTop Check6 : Caption Kečap Name chkTop Command1 : Caption &Napravi picu Name cmdNapravi Command2 : Caption I&zlaz Name cmdIzlaz

Krajnja forma izgleda kao na slici:

Poglavlje 3 Visual Basic alati

118

4. Deklarišemo varijable potrebne za cijeli program sa (general declarations ): Option Explicit Dim PicaVelicina As String Dim PicaKora As String Dim PicaGdje As String Ovim varijablama postavljamo veličinu, debljinu kore i lokaciju kao varijable za

sve objekte. 5. Dodijelimo kod proceduri koja poziva formu Form_Load . Ona incijalizira

veličinu, debljinu i lokaciju isporuke pice. Private Sub Form_Load() 'Initialize Pica parameters PicaVelicina = "Mala" PicaKora = "Tanka Kora" PicaGdje = "jede" End Sub

Poglavlje 3 Visual Basic alati

119

6. Dodijelimo kod sva tri opciona dugmad za dogañaj klik miša.: Private Sub optVel_Click(Index As Integer) ‘Čita veli činu pite PicaVelicina = optVel(Index).Caption End Sub Private Sub optKora_Click(Index As Integer) ‘Čita tip kore PicaKora = optKora(Index).Caption End Sub Private Sub optGdje_Click(Index As Integer) ‘Čita lokaciju isporuke pice PicaGdje = optGdje(Index).Caption End Sub 7. Dodijelimo kod komandnom dugmetu cmdNapravi_Click za dogañaj klik

miša. Private Sub cmdNapravi_Click() Dim Poruka As String Dim i As Integer Poruka = PicaGdje + vbCr Poruka = Poruka + PicaVelicina + " Pica" + vbCr Poruka = Poruka + PicaKora + vbCr For i = 0 To 5 If chkTop(I).Value = vbChecked Then_ Poruka = Poruka + chkTop(I).Caption + vbCr Next I MsgBox Poruka, vbOKOnly, "Vaša Pica" End Sub vbCr je simbolička konstanta koja mijenja enter kod unosa teksta. 8. Dodamo kod dugmetu cmdIzlaz_Click . Private Sub cmdIzlaz_Click() End End Sub

Poglavlje 3 Visual Basic alati

120

9. Probamo da li aplikacija radi. Upamtimo projekt. 10. Rezultat programa je

Poglavlje 3 Visual Basic alati

121

3.10 List Okviri (List Boxes)

• List okvir(list box) ispisuje listu podataka od kojih korisnik može da odabere

jedan. Ako broj stavki prelazi broj koji se može ispisati u okviru dodaje se automatski vertikalni klizač.

• Osobine list okvira (List Box ) :

Appearance Izbora 3-D ili ravan okvir. List polje stavki. ListCount Broj stavki u listi. ListIndex Broj stavki koje mogu biti izabrane u listi. Ako

nema izabranih stavki ListIndex = -1. MultiSelect Kontroliše koliko će stavki biti izabrano (0-samo

jedna stavka, 1-dozvoljeno više stavki, 2-dozvoljena selekcija grupe stavki).

Sorted True znači da se stavke sortiraju po 'Ascii' kodu, inače je poredak kao pri unosu.

Text Tekst izabranih stavki. • Dogañaji List okvira (List Box):

Click Dogañaj kada se izabere stavka sa liste. DblClick Dogañak kada se list okvir dvaput uzastopno

klikne. • Metode List okvira:

AddItem Dozvoljava korisniku da ubacuje stavke u listu. Clear Briše sve stavke iz liste. RemoveItem briše pojedinačne stavke iz liste.

Primjeri

lstPrimjer.AddItem "Ovo je dodata stavka " ' dodaje zapis u listu lstPrimjer.Clear ' briše list okvir lstPrimjer.RemoveItem 4 ' Briše lstPrimjer.List(4) iz list okvira

• Stavke u listi se obično postavljaju u Form_Load proceduri. Dobro je upotrebiti komandu Clear da prethodno očistimo listu.

Poglavlje 3 Visual Basic alati

122

3.11 Kombo okvir (Combo Boxes)

• Kombo okvir (combo box) je isti kao i list okvir. Razlika je što jkombo okvir

uključuje tekst okvir na vrhu list okvira i dozvoljava izbor samo jedne stavke U nekim slučajevima korisnik može izabrati alternativni odgovor.

• Osobine Kombo okvira :

Osobine kombo okvira identične su sa osobinama list okvira bez MultiSelect osobine i sa dodatkom Style osobine.

Appearance Izbora 3-D ili ravan okvir. List polje stavki. ListCount Broj stavki u listi. ListIndex Broj stavki koje mogu biti izabrane u listi. Ako

nema izabranih stavki ListIndex = -1. Sorted True znači da se stavke sortiraju po 'Ascii' kodu,

inače je poredak kao pri unosu. Style Izabira formu kombo okvira.

Style = 0, padajući kombo okvir. Style = 1, jednostavan kombo okvir. Style = 2, Padajući kombo. Text Tekst izabranih stavki.

• Dogañaji Kombo okvira:

Click Dogañaj kada se izabere stavka sa liste. DblClick Dogañak kada se list okvir dvaput uzastopno klikne

Poglavlje 3 Visual Basic alati

123

• Metode kombo okviraCombo Box Methods:

AddItem Dozvoljava korisniku da ubacuje stavke u listu. Clear Briše sve stavke iz liste. RemoveItem briše pojedinačne stavke iz liste.

Primjeri:

cboPrimjer.AddItem "Ovo je dodata stavka " cboPrimjer.Clear cboPrimjer.RemoveItem 4

Primjer 3.3 Program za kreiranje narudžbe automobila

1. U ovoj vježbi kreirat će se program za primanje narudžbe automobila te

ispis narudžbe. Najprije će se na formi (slika 38) smjestiti okvir (Frame ) unutar kojeg će se kreirati grupa povezanih elementa na formi. Neke od osobina okvira su:

Caption naslov okvira, Font postavlja vrstu slova natpisa, stil i veličinu.

Poglavlje 3 Visual Basic alati

124

2. Zatim se elementi koje želimo grupisati smještaju u okvir. U ovom slučaju smještamo tri dugmeta izbora (Option Button). Dugme izbora, kao dio grupe s drugim dugmadima izbora, omogućuje višestruku mogućnost izbora, od čega korisnik može odabrati samo jednu. Dugmad izbora unutar okvira djeluju kao grupa nezavisno o eventualnim dugmadima iz drugog okvira. Dugmad izbora na formi i izvan okvira takoñer rade kao nezavisna grupa.

Sl. 34 Smještanje okvira na formu

Zatim se elementi koje želimo grupisati smještaju u okvir. U ovom slučaju (SL. 34) smještamo tri dugmeta izbora (Option Button). Dugme izbora, kao dio grupe s drugim dugmadima izbora, omogućuje višestruku mogućnost izbora, od čega korisnik može odabrati samo jednu. Dugmad izbora unutar okvira djeluju kao grupa nezavisno o eventualnim dugmadima iz drugog okvira. Dugmad izbora na formi i izvan okvira takoñer rade kao nezavisna grupa.

Poglavlje 3 Visual Basic alati

125

Sl. 35 Smještanje dugmeta izbora

3. Sljedeći korak je smještanje okvira sa šest kontrolnih dugmadi (Check box ) koje nude izbor izmeñu nekoliko mogućnosti pri čemu se ne mora odabrati ni jedna, jedna, više ili sve mogućnosti unutar grupe (za razliku od dugmeta izbora, gdje se može odabrati samo jedna mogućnost). Neke od osobina kontrolnog okvira su:

Caption tekst koji ide uz dugme,

Font postavlja vrstu slova natpisa, stil i veličinu,

Value Postavlja vrijednost ako nije odabrano kontrolno dugme(0, vbUnchecked ), odabrano (1, vbChecked ) ili da je izbor stalan te je kućica zatamnjena (2, vbGrayed ).

Poglavlje 3 Visual Basic alati

126

Sl. 36 Smještanje kontrolnih okvira

4. Zatim na formu smještamo okvir s popisom (List Box ) koji prikazuje popis stavki

koje korisnik može izabrati (slika 37). Ako broj stavki na popisu prelazi veličinu okvira s popisom, automatski se pojavljuje klizač za pregledavanje popisa.

Sl. 37 Smještanje okvira s popisom

Poglavlje 3 Visual Basic alati

127

Neke od osobina kontrole okvira s popisom su:

Appearance odabire se dugme sa 3-D ili 2-D izgledom,

List polje stavki u okviru s popisom,

ListCount broj stavki na popisu,

ListIndex broj trenutačno odabrane stavke na popisu. Ako nije odabrana ni jedna stavka, ListIndex = -1, MultiSelect kontroliše koliko stavki može biti odabrano (0 – nema više stavki, 1 –dozvoljen izbor više stavki, 2 –dozvoljena samo selekcija grupe),

Selected ima vrijednost True ili False, zavisno je li odabrana stavka s popisa,

Sorted vrijednost True znači da će se stavke razvrstati po abecednom redoslijedu, a u suprotnom se prikazuju prema redoslijedu kojim su dodavane popisu,

Text tekst zadnje odabrane stavke na popisu.

Glavne metode okvira s popisom su:

AddItem omogućuje dodavanje stavke popisu,

Clear briše sve stavke s popisa,

RemoveItem briše stavku s popisa po indeksu stavke.

Na slici 38. prikazana je forma s dodatno smještenim kombinovanim okvirom (Combo Box ).

Poglavlje 3 Visual Basic alati

128

Sl. 38 Crtanje kombinovanog okvira

Kombinovani okvir sličan je okviru s popisom uz razliku da sadrži okvir s tekstom koji se nalazi na vrhu popisa u koji korisnik može upisati stavku. Kombinovani okvir dopušta izbor samo jedne stavke (bilo s popisa ili upisivanjem). Neke od osobina kontrole kombiniranog okvira su:

Appearance -odabira izgled 3-D ili 2-D,

List -polje stavki u okviru s popisom,

ListCount -broj stavki na popisu,

ListIndex -broj trenutno odabrane stavke na popisu. Ako nije odabrana nijedna stavka, ListIndex = -1,

MultiSelect -kontroliše koliko stavki može biti odabrano (0 – nema više stavki, 1 – moguće više stavki, 2 – grupni izbor)

Sorted -vrijednost True znači da će se stavke razvrstati po abecednom redoslijedu, a u suprotnom se prikazuju prema redoslijedu kojim su dodavane popisu,

Poglavlje 3 Visual Basic alati

129

Style definiše oblik kombinovanog okvira:

Style = 0, padajući popis, korisnik može upisati vlastiti izbor

Style = 1, obični kombinovani popis s klizačima, gdje korisnik može upisati vlastiti izbor,

Style = 2, padajući popis, korisnik ne može upisati vlastiti izbor,

Text tekst zadnje odabrane stavke na popisu.

Glavne metode kombinovanog okvira su:

RemoveItem briše stavku s popisa po indeksu stavke.

Clear briše sve stavke s popisa,

AddItem omogućuje dodavanje stavke popisu,

Na kraju je potrebno dodati dva komandna dugmeta i dva natpisa iznad okvira s popisom i kombinovanog okvira.

Slika 39 . Kona čni izgled forme

Poglavlje 3 Visual Basic alati

130

Vrijednosti za osobine objekta

Poglavlje 3 Visual Basic alati

131

Na formi je smještena grupa kontrola dugmadi izbora optKlasa (klasa automobila) i grupa kontrolnih okvira chkDodaci . Okvir s popisom lstMarka sadrži popis maraka automobila, a kombinovani okvir cboGrad grad za odredište (slika 40). chkDodaci(5).Caption = “ABS”

Slika 40. Kona čni izgled forme

Prilikom promjene osobine imena (Name) elementu Option2 pojavljuje se dijaloški okvir s pitanjem želimo li kreirati polje elemenata OptKlasa na

Poglavlje 3 Visual Basic alati

132

koje treba odgovoriti potvrdno (yes). Polje elemenata (Array) je višedimenzionalna varijabla čiji indeks počinje s 0, a završava s brojem dimenzije polja. Pomoću indeksa se u programskom kodu pristupa pojedinom elementu polja. Npr, ako želimo definisati natpis "ABS" za element 5 polja kontrolnih okvira programski kod je kako slijedi: Pisanje programskog koda za ovaj primjer započinje s deklarisanjem varijable Klasa (klasa automobila) kako slijedi: Option Explicit Dim Klasa As String

Zatim postavljamo početne postavke pri učitavanju forme. Listi s popisom lstMarka dodaju se stavke metodom AddItem , a predefinisano odabrana stavka je prva stavka na listi (indeks 0). Na isti način definišemo i popis kombinovanog okvira cboGrad . Private Sub Form_Load()

Klasa = "Mali"

lstMarka.Clear

lstMarka.AddItem "Audi"

lstMarka.AddItem "BMW"

lstMarka.AddItem "Citroen"

lstMarka.AddItem "Fiat"

lstMarka.AddItem "Honda"

lstMarka.AddItem "Mazda"

lstMarka.AddItem "Nissan"

lstMarka.AddItem "Opel"

Poglavlje 3 Visual Basic alati

133

lstMarka.AddItem "Peugeot"

lstMarka.AddItem "Renault"

lstMarka.AddItem "Volvo"

lstMarka.AddItem "Volkswagen"

lstMarka.ListIndex = 0

cboGrad.AddItem "Banjaluka"

cboGrad.AddItem "Prijedor"

cboGrad.AddItem "Gradiška"

cboGrad.AddItem "Doboj"

cboGrad.AddItem "Trebinje"

cboGrad.AddItem "Ljubinje"

cboGrad.AddItem "Mrkonji ć Grad"

cboGrad.AddItem “Zvornik"

cboGrad.ListIndex = 0

End Sub

Programski kod za dogañaj Click na grupu dugmadi izbora optKlasa , koji pridružuje natpis odabranog dugmeta varijabli Klasa je kako slijedi:

Klasa = optKlasa(Index).Caption

End Sub

U programskom kodu za dogañaj Click na komandno dugme cmdPrihvati , se nakon deklarisanja i pridruživanja vrijednosti varijabli Narudzba , kreira dijaloški okvir. Dijaloški okvir s porukom (Message Box) ispisuje konačnu vrijednost varijable Narudžba . Programski kod za prikaz dijaloškog okvira je kako slijedi: MsgBox Poruka, Tip, Naslov

Poglavlje 3 Visual Basic alati

134

Tabela 4. Tipovi dugmadi koji se mogu prikazivati u okviru za poruku

Vrijednost Zna čenje Simbol

0 OK gumb vbOKOnly

1 OK/Cancel dugme vbOKCancel

2 Abort/Retry/Ignore dugme vbAbortRetryIgnore

3 Yes/No/Cancel dugme vbYesNoCancel

4 Yes/No dugme vbYesNo

5 Retry/Cancel dugme vbRetryCancel

Private Sub cmdPrihvati_Click()

Dim Narudzba As String

Dim i As Integer

Narudzba = Klasa + " automobil" + vbCr

Narudzba = Narudzba + lstMarka.Text + vbCr For i = 0 To 5

If chkDodaci(I).Value = vbChecked Then Narudzba = Na rudzba + _

"+ " + chkDodaci(I).Capt ion + vbCr

Next I

Narudzba = Narudzba + "Odredište: " + cboGrad.Text + vbCr

MsgBox Narudzba, vbOKOnly, "Narudzba"

End Sub

Poglavlje 3 Visual Basic alati

135

Na slici 41. prikazan je rad programa.

Slika 41. Rad programa

Poglavlje 4 Visual Basic Alati Nastavak

136

4. Dodatna objašnjenja Visual Basic Alatki (Toolbo x) Pregled • I dalje posmatramo Visual Basic alate. Pregledaćemo alate za crtanje, klizače

i alatke koje dozvoljavaju direktnu interakciju sa drajvovima, direktorijima i fajlovima.

Displej Slojevi • U ovom poglavlju diskutovaćemo grafičke kontrole: linijske alatke , alatke

okvira, okvire za sluku, i okvire za crtež. • Stavke na formi ne pripadaju jednom sloju displeja. Displej forme je sastavljen

od 3 sloja. Sve informacije koje se ispisuju direktno na formi (ispisi ili slika u pozadini nalaze se na donjem sloju (bottom-layer) . Informacije preko labela , okvira crteža , slika, linijske alatke i alatke okvira nalaze se na srednjem sloju middle-layer . i svi ostali objekti se nalaze na gornjem sloju top-layer .

Poglavlje 4: Visual Basic alati nastavak

137

• Npr. Tekst ispisan na formi biće sakriven ako se postavi komandno dugme na njega

• Sledeće pitanje je šta postavlja relativnu lokaciju objekta na istom sloju. Ako

imamo komandno dugme i postavimo ga na natpis on će pokriti natpis. Ako želimo da natpis doñe naprijed koristimo komande za postavljanje teksta naprijed (Bring to Front) ili postavljanje nazad (Send to Back) .

4.1 Linijske alatke (Line Tool)

• Linijske alatke ( line tool) kreira jednostavne linije za vezu objekta. • Osobine linijskih alatki:

BorderColor Odreñuje boju linije. BorderStyle Odreñuje tip linije i to : transparenta, normalna,

tačka crta, tačkice i kombinacije. BorderWidth Odreñuje debljinu linije.

• Nema metoda ili dogañaja koji se dodjeljuju ovom alatu. Alati Crtanja (shape tool)

• Alati crtanja (shape tool) omogućavaju kreiranje krugova, ovala, kvadrata,

trouglova i zaokruženih kvadrata. Moguće je promjeniti uzorke boja okvira i unutar objekta.

• Osobine alata crtanja:

BackColor Odreñuje pozadinsku boju (koristi se kada FillStyle nije Solid.

BackStyle Odreñuje kada je pozadina transparentna . BorderColor Odreñuje boju okvira nacrtanog elementa. BorderStyle Odreñuje stil okvira nacrtanog elementa. Okvir

može biti transparenta linija, puna linija, tačka crta, tačkice, i kombinacije.

Poglavlje 4 Visual Basic Alati Nastavak

138

BorderWidth Odreñuje debljinu okvira crtanog elementa. FillColor Definiše unutrašnju boju elementa. FillStyle Odreñuje uzorak interne boje elementa. Shape Odreñuje da li je element kvadrat, krug,

dijagonala ili neki drugi izbor. • Kao linijska alatka dogañaji i metode ne postoje za alate za crtanje. 4.2 Horizontalni i vertikalni kliza či (Horizontal and Vertical Scroll Bars)

• Horizontalni i vertikalni klizači se koriste u Windows aplikaciji. Klizači

omogućuju da jednostavno prolazimo kroz listu informacija. • Oba tipa se sastoje od tri polja koji se mogu Mijenjati klikom, povlačenjem ili

promjenom vrijednosti klizača. Ta polja su:

Klikom na krajnju strelicu povećavamo vrijednost klizača za manji broj, klikom na klizač i povlačenjem klizača povećavamo vrijednost klizača za veći broj i klikom na polje klizača povećava vrijednost klizača .

• Osobine klizača:

LargeChange Inkrementira ili dekrementira vrijednost koju postavimo u Value osobinu.

Max Maksimalna vrijednost klizača. Opseg je od -32,768 do 32,767.

Min Minimalna vrijednost. Opseg je od -32,768 do 32,767.

SmallChange Inkrement koji se dodaje ili uzima od vrijednosti Value osobine kada kliknemo na klizač.

Value tekuća vrijednost zavisi od pozicije klizača. Ako postavimo vrijednost kodom Visual Basic pomjera klizač na odgovarajuću poziciju.

Osobine horizontalnog klizača:

Krajnja strelica

Klizač (thumb) Polje klizača

Poglavlje 4: Visual Basic alati nastavak

139

Osobine vertikalnog klizača:

• Nekoliko važnih naznaka za oba klizača:

1. Iako se ekstremne vrijednosti zovu Min i Max, oni ne moraju u našoj aplikaciji biti minimalno i maksimalno, postavimo te osobine kako nama u aplikaciji odgovara. Visual Basic automatski podešava preko osobina SmallChange i LargeChange odgovarajuće promjene.

2. Ako promijenimo Value , Min , ili Max osobine u kodu moramo biti sigurni

da Value bude uvijek izmeñu Min i Max ili će se program zaustaviti sa greškom.

3. Dogañaji klizača:

Change Dogañaj se postavlja za svaku promjenu na

klizaču..

Manja Promjena

Manja Promjena

Veća Promjena

Veća Promjena

Vrijednost

Max

Min

Min

Manja Promjena

Manja Promjena Veća Promjena

Veća Promjena Vrijednost

Max

Poglavlje 4 Visual Basic Alati Nastavak

140

Scroll Dogañaj koji se desi samo pomijeranjem mišem klizača.

Primjer 4.1 Konverzija temperature Startamo projekt. U ovom projektu konvertujemo temperature u Korakenima Farenhajta i Korakena Celzijusa.

Specifikacija aplikacije za konverziju temperatura

Aplikacija ima klizač koji podešava temperaturu u Korakenima farenhajta od minimuma do maksimuma. Kako korisnik mijenja vrijednost u Korakenima Farenhajta mijenja se automatski i Korakeni celzijusevi Formula za konvertovanje iz Fahrenheit (F) u Celsius (C) je:

C = (F - 32)*5/9 Da bi dobili zaokružen cijeli broj koristimo VB CInt () funkciju. Da promijenimo numeričku informaciju u tekst koristimo Str () ili Format () funkciju.

Poglavlje 4: Visual Basic alati nastavak

141

Pristup aplikaciji za konverziju temperatura: 1. Postavi okvir, vertikalni klizač , četiri labele i komandno dugme. To će

izgledati kao na slici:

2. Postavi osobine forme i svih objekta:

Form1 : BorderStyle 1-Fiksni okvir Caption Konverzija Temperature Name frmTemp Shape1 : BackColor White BackStyle 1-Siva FillColor Red FillStyle 7-Dijagonalne linije Shape 4-Okvir zaokruženih ivica VScroll1: LargeChange 10 Max -60 Min 120 Name vsbTemp SmallChange 1

Shape1

Poglavlje 4 Visual Basic Alati Nastavak

142

Value 32 Label1: Alignment 2-Center Caption Faranhajt FontSize 10 FontStyle Bold Label2: Alignment 2-Center AutoSize True BackColor White BorderStyle 1-Fiksni okvir Caption 32 FontSize 14 FontStyle Bold Name lblTempF Label3: Alignment 2-Center Caption Celzius FontSize 10 FontStyle Bold Label4: Alignment 2-Center AutoSize True BackColor White BorderStyle 1-Fiksni okvir Caption 0 FontSize 14 FontStyle Bold Name lblTempC Command1: Cancel True Caption I&zlaz Name cmdIzlaz

Postavi temperaturu na 32F i 0C. Kada to uradite dobijete formu kao na slici:

Poglavlje 4: Visual Basic alati nastavak

143

3. postavi kod u dijelu koda Genera l da bi bio dostupan svim ostalim

programima. Option Explicit Dim TempF As Integer Dim TempC As Integer Dobijemo tekuće varijable za temperaturu. 4. Dodajemo kod klizaču za Scroll dogañaj. Private Sub vsbTemp_Scroll() 'Čita F i pretvara ga u C TempF = vsbTemp.Value lblTempF.Caption = Str(TempF) TempC = CInt((TempF - 32) * 5 / 9) lblTempC.Caption = Str(TempC) End Sub

Poglavlje 4 Visual Basic Alati Nastavak

144

5. Dodijeli kod dogañaju Change klizača. Private Sub vsbTemp_Change() 'Čita F i pretvara ga u C TempF = vsbTemp.Value lblTempF.Caption = Str(TempF) TempC = CInt((TempF - 32) * 5 / 9) lblTempC.Caption = Str(TempC) End Sub 6. Dodijeli kod cmdIzlaz_Click proceduri. Private Sub cmdIzlaz_Click() End End Sub 7. Provjeri program da radi. Upamti projekt 4.3 Okviri Slike (Picture Boxes)

• Okvir slike (picture box) dopušta nam da postavimo grafičku informaciju na

formu. To nam je potrebno za dinamičko multimedijalno okruženje. • Osobine Okvira slike (Picture Box ) :

AutoSize Ako je istinit (True), moguće je mijenjati veličinu okvira sa slikom.

Font Postavlja veličinu fonta , boju itd. Picture Povezuje grafički fajl sa okvirom za prikaz slike.

• Dogañaji okvira slike (Picture Box):

Click Postavi se kada se klikne na okvir slike. DblClick Postavi se kada se dvaput uzastopno klikne na

okvir slike.

• Metode Okvira slike (Picture Box):

Poglavlje 4: Visual Basic alati nastavak

145

Cls Čisti Okvir slike. Print Ispisuje informaciju na okvir slike.

Primjeri

picPrimjer.Cls ' čisti okvir picPrimjer picPrimjer.Print "okvir slike" ' ispisuje tekst na okvir slike

• Procedura za preuzimanje slike u okvir (LoadPicture):

Važna funkcija kada koristimo okvire slika koristeći LoadPicture proceduru. Koristi se da postavi osobinu Picture . Primjer picPrimjer.Picture = LoadPicture("c:\slike\uzorak.bmp") Ova komanda poziva grafički fajl c:\slike\uzorak.bmp u Picture osobinu picPrimjer okvir slike. Za argument ove funkcije LoadPicture mora biti ime fajla sa kompletnim putem i imenom fajla inače će program generisati grešku.

• Pet tipova grafičkih fajlova se može pozvati u okvir slike:

Bitmap Slika predstavljena u pikselima i memorisana kao kolekcija bita u kojoj svaki bit odgovara jednom pikselu slike. Obično koristi .bmp nastavak.

Icon Specijalni tip bitmap fajla sa maksimum 32 x 32 veličinom. Ima .ico nastavak.

Metafile Fajl koji pamti sliku kao kolekciju grafi;kih objekta (linija, krugova, poligona) a ne kao piksela. Ima .wmf nastavak.

JPEG JPEG (Joint Photographic Experts Group) je kompresovani bitmap fajl koji podržava od 8 do 24 bit boju. Popularan je na internetu. Ima .jpg ekstenziju.

GIF GIF (Graphic Interchange Format) je kompresovani bitmap format koji podržava animaciju. Ima .gif ekstenziju.

Poglavlje 4 Visual Basic Alati Nastavak

146

4.4 Okvir za crtež (Image Boxes)

• Okvir za crtanje (image box) je sličan okviru za sliku (picture box) Okvir za

crtanje je bolji za statične situacije gdje imamo manje modifikacija u fajlu. • Osobine Okvira za crtanje (Image Box):

Picture Preko nje se poziva grafički fajl da se prikaže u okviru za crtanje.

Stretch Ako je False, okvir za crtež se može Mijenjati da prikaže svu grafiku. Ako je True, sam se okvir širi da prihvati sliku.

• Dogañaji Okvira za crtež:

Click Postavlja se kada kliknemo na okvir. DblClick Postavlja se kada dvaput kliknemo na okvir.

• Za pozivanje gotove slike koristi se LoadPicture funkcija. Koristi se na isti

način kao kod okvira za sliku (picture box). 4.5 Okvir za prikaz Drajva (Drive List Box)

• Okvir za prikaz drajva (drive list box) omogućava korištenje i izbor drajva (A:,

C:, D:, E: itd.). • Osobine okvira za prokaz drajva (Drive List Box):

Drive Sadrži ime trenutno izabranog drajva. • Dogañaji okvira za prikaz drajva:

Change Starta se kada promijenimo drajv u okviru..

Poglavlje 4: Visual Basic alati nastavak

147

4.6 Okvir za prikaz direktorija (Directory List Box)

• Okvir za prokaz direktorija (Directory List Box) ispisuje hijerarhijski listu

korisničkih direktorija i poddirektorija. Struktura direktorija se ispisuje u uokvirenu listu.

• Osobine okvira za prikaz direktorija (Directory List Box):

Path Sadrži tekući put do direktorija. • Dogañaji okvira za prikaz direktorija:

Change Starta se kod izmjene tekućeg direktorija 4.7 Okvir za prikaz datoteka (File List Box)

• Okvir za prikaz datoteka (File List Box) locira i lista datoteke u direktoriju

koji je specificiran svojim putem (path) u trenutku starta programa. • Osobine Okvira za prikaz fajlova (File List Box ):

FileName Sadrži ime tekućeg fajla koji je izabran. Path Sadrži put tekućeg direktorija. Pattern Sadrži string koji odreñuje koja će grupa fajlova

biti izabrana. Podržava * i ? karaktere. Npr. koristeći *.doc prikazuje samo fajlove iz Word-a.

• Dogañaji Okvira za prikaz fajlova (File List Box):

DblClick Kada kliknemo na fajl listu 2 puta uzastopno. PathChange Postavlja se kada promijenimo put fajla.

• Možete koristiti i MultiSelect osobinu da dopustite više različitih fajlova.

Poglavlje 4 Visual Basic Alati Nastavak

148

Primjer 4.2 Pregled slika Startate novi projekt. U ovoj aplikaciji pretražujete strukturu podataka kompjutera da bi našli i prikazali grafičke datoteke..

Specifikacija programa za pregled slika

Razviti aplikaciju koja može tražiti grafičke fajlove (*.ico, *.bmp, *.wmf) na vašem kompjuteru. Kada se jednom datoteka odabere . ispisati njeno ime i put i prikazati je u okviru za prikaz slika koristeći funkciju LoadPicture ().

Sledeći koraci : 1. Postavi okvir za drajv, okvir za direktorije, okvir za datoteke , 4 labele i jedno

komandno dugme na formu. Takoñe dodajemo okvir za sliku. Zbog samog izgleda forme nacrtaj veći okvir. U tom okviru nacrtaj drugi i onda okvir za sliku. Dva okvira i okvir za sliku su na istom sloju displeja, okvir za sliku je na trećim slojem. Forma izgleda kao na slici:

Sl. 42 Forma za program Pregled Slika

Line1

Image1

Shape1

Shape2

Poglavlje 4: Visual Basic alati nastavak

149

2. Postavi osobine forme i svaki objekt.

Form1: BorderStyle 1-Fiksni okvir Caption Pregled Slika Name frmSlika Drive1: Name drvSlika Dir1: Name dirSlika File1: Name filSlika Pattern *.bmp;*.ico;*.wmf;*gif;*jpg Label1 : Caption [Blank] BackColor Yellow BorderStyle 1-Fiksni okvir Name lblslika Label2 : Caption Fajlovi: Label3 : Caption Direktoriji: Label4: Caption Drajvovi: Command1: Caption &Prikaži Sliku Default True Name cmdPrikazi Command2: Cancel True Caption I&zlaz Name cmdExit

Poglavlje 4 Visual Basic Alati Nastavak

150

Line1: BorderWidth 3 Shape1: BackColor Cyan BackStyle 1-Opaque FillColor Blue FillStyle 4 Shape 4 Shape2: BackColor White BackStyle 1-Opaque Image1: BorderStyle 1-Fiksni okvir Name imgSlika Stretch True

3. Dodijeli sledeći kod proceduri drvSlika_Change . Private Sub drvSlika_Change() 'Ako se drajv promjeni promjeni i put ka fajlu dirSlika.Path = drvSlika.Drive End Sub 4. Dodijeliti kod proceduri dirSlika_Change . Private Sub dirSlika_Change() 'Ako se direktori promjeni promjeniti put fajla filSlika.Path = dirSlika.Path End Sub 5. Dodijeliti kod proceduri cmdPrikazi_Click i dogañaju klika mišem. Private Sub cmdPrikazi_Click() 'Postavi puni put za sliku Dim SlikaIme As String 'Provjeri da li je to korjen direktorija

Poglavlje 4: Visual Basic alati nastavak

151

If Right(filSlika.Path, 1) = "\" Then SlikaIme = filSlika.Path + filSlika.filename Else SlikaName = filSlika.Path + "\" + filSlika.filen ame End If lblSlika.Caption = SlikaIme imgSlika.Picture = LoadPicture(SlikaIme) End Sub Kod stvara ime fajla (SlikaName ) spajajući string sa putem direktorijima i ime

fajla. 6. Kopiraj kod iz procedure cmdPrikazi_Click i postavi u proceduru

FilSlika_DblClick . Kod je identičan zato što moramo prikazati isto i za jednu i za drugu proceduru.

7. Dodijeli kod proceduri cmdExit_Click . Private Sub cmdExit_Click() End End Sub 8. Upamti projekt. Startaj projekt. Nañi bitmapirane, ikone, ili metafajlove .

Postavi u okvir za sliku osobinu Stretch da bi se slika vidjela potpuno u okviru.

Poglavlje 4 Visual Basic Alati Nastavak

152

4.8 Okvir za zajedni čki dijalog windowsa (Common Dialog Boxes)

• Da bi mogli da koristimo zajedničke funkcije windows-a kao što su Open File

and Save File . • Da bi našem programu ponudio standardni interfejs Windows-a koristimo

alatku Okvir za zajednički dijalog windows-a (Common Dialog Boxes) koja nam daje mogućnost da jednostavno koristimo osnovne menije Open i Save As djaloge.

• Zajednički dijalog je podešavajuća kontrola ‘custom control ’ koju možemo

koristiti. Pri tom koristimo izabrane komponente preko projekt menija. Ako je izboramo kliknemo na Microsoft Common Dialog Control , tada kliknemo na OK.

Poglavlje 4: Visual Basic alati nastavak

153

• Zajednički dijalog se ne vidi kada se program starta. Metode su:

Metoda Zajedni čki dijalog ShowOpen Okvir za otvaranje fajla ShowSave Save As dijalog kutija ShowColor Dialog kutija za Boju ShowFont Dijalog kutija za Font ShowPrinter Dijalog kutija za izbor printera

• Format za zajednički dijalog je kao na primjer: Cdlprimjer.ShowOpen Otvaranje zajedni čke dijalog kutije • Zajednički dijalog Open omogućava otvaranje fajla kao i u svim windows

programima. Otvara se komandom ShowOpen .

Poglavlje 4 Visual Basic Alati Nastavak

154

• Open Dijalog kutija osobine:

CancelError Generiše grešku ako je pritisnuto Cancel dugme. Koristi nam za proceduru za obradu greške.

DialogTitle Ovaj string se ispisuje u naslovu dijalog kutije. Tekući je Open. U primjeru je dijaloška kutija Open Primjer .

FileName Postavlja početno ime fajla u dijaloškoj kutiji za fajlove.

Filter Koristi se da filtrira imena fajla. Filter može da postavi Bitmap (*.bmp), Icon (*.ico), Metafile (*.wmf), GIF (*.gif), i JPEG (*.jpg) tip.

FilterIndex Pokazuje koja je komponenta iz filtra trenutno postavljena.

Flags Vrijednosti koje kontrolišu specijalne mogućnosti 4.9 Kratki primjer: 1. Startaj novi projekt . Postavi zajednički alat , labelu i komandno dugme

Postavi sledeće osobine:

Form1: Caption Zajednički dijalog Name frmZajednicki CommonDialog1: DialogTitle Primjer otvaranja datoteka Filter Bitmap (*.bmp)|*.bmp| Icon (*.ico)|*.ico|Metafiles (*.wmf)|*.wmf GIF Files (*.gif)|*.gif|JPEG Files (*,jpg)|*.jpg (sve u jednoj liniji) Name cdlPrimjer Label1 : BorderStyle 1-Fiksni okvir Caption [Blank] Name lblPrimjer Command1 : Caption &Okvir za ispis Name cmdDisplej

Poglavlje 4: Visual Basic alati nastavak

155

Kada uradimo forma će izgledati kao na slici:

2. Dodaj kod proceduri cmdDisplay_Click .

Private Sub cmdDisplay_Click() cdlPrimjer.ShowOpen lblPrimjer.Caption = cdlPrimjer.filename End Sub

3. Upamti aplikaciju pod odgovarajućim imenom. Osnovna dijalog kutija za pam ćenje datoteke • Save As zajednička dijaloška kutija omogućava korisnički mehanizam za

specificiranje imena fajla koga pamtimo. Pri tom koristimo ShowSave metodu..

Poglavlje 4 Visual Basic Alati Nastavak

156

• Osobine dijaloga za pamćenje fajla:

CancelError Ako je istina generiše grešku ako je pritisnuto Cancel dugme. Koristi nam za proceduru za obradu greške.

DialogTitle Ovaj string se ispisuje u naslovu dijalog kutije. Tekući je Open. U primjeru je dijaloška kutija Open Primjer.

FileName Postavlja početno ime fajla u dijaloškoj kutiji za fajlove.

Filter Koristi se da filtrira imena fajla. Filter može da postavi Bitmap (*.bmp), Icon (*.ico), Metafile (*.wmf), GIF (*.gif), i JPEG (*.jpg) tip.

FilterIndex Pokazuje koja je komponenta iz filtra kao tekuću. Flags Vrijednosti koje kontrolišu specijalne mogućnosti

• Pamćenje fajla se konfiguriše na dva načina. Ako se fajl pamti prvi put koristi se Save As sa različitim imenom. U svakom drugom sličaju kada pamtimo isti fajl koristimo Save konfiguraciju

• Kada korisnik zatvori Save File dijalog, fajl odgovarajuće specifikacije će se

prebaciti u dijalošku kutiju. Primjer 4.3 Studentska služba Ako razmišljamo o programu za studentsku službu onda možemo za početak odabrati osnovne podatke koje ćemo unositi:

1. Ime studenta 2. Godina na kojoj je student (1 do 4) 3. Pol studenta (Muški ili Ženski) 4. Datum roñenja (Mjesec, Dan, Godina) 5. Slika studenta (bitmapirana)

Postavi ekran da se unosi samo ime , a ostali elementi da se biraju sa ekrana preko opcionih dugmadi, klizača i zajedničkih dijalog a. Rezultat izbora će se prikazati u okviru za poruke (message box).

Poglavlje 4: Visual Basic alati nastavak

157

Godina starosti studenta se računa na osnovu današnjeg datuma i datuma roñenja.

Osobine: Form frmStudent: BorderStyle = 1- Fiksni okvir Caption = Profil Studenta CommandButton cmdLoad : Caption = &Prikazi sliku Frame Frame3 : Caption = Picture FontName = MS Sans Serif FontBold = True FontSize = 9.75 FontItalic = True

Poglavlje 4 Visual Basic Alati Nastavak

158

Image imgStudent : BorderStyle = 1 - Fiksni okvir Stretch = True CommandButton cmdExit : Caption = E&xit CommandButton cmdNovi : Caption = &New Profile CommandButton cmdPrilkaži : Caption = &Show Profile Frame Frame4 : Caption = Godina studija FontName = MS Sans Serif FontBold = True FontSize = 9.75 FontItalic = True OptionButton optLevel : Caption = Godina 6 Index = 5 OptionButton optLevel : Caption = Godina 5 Index = 4 OptionButton optLevel : Caption = Godina 4 Index = 3 OptionButton optLevel : Caption = Godina 3 Index = 2 OptionButton optLevel : Caption = Godina 2 Index = 1

Poglavlje 4: Visual Basic alati nastavak

159

OptionButton optLevel : Caption = Godina 1 Index = 0 Frame Frame2 : Caption = Pol FontName = MS Sans Serif FontBold = True FontSize = 9.75 FontItalic = True OptionButton OptPol : Caption = Ženski Index = 1 OptionButton OptPol : Caption = Muški Index = 0 Frame Frame1 : Caption = Datum Roñenja FontName = MS Sans Serif FontBold = True FontSize = 9.75 FontItalic = True VScrollBar vsbGodina Max = 1800 Min = 2100 Value = 1960 VScrollBar vsbDan Max = 1 Min = 31 Value = 1 VScrollBar vsbMjesec Max = 1 Min = 12 Value = 1

Poglavlje 4 Visual Basic Alati Nastavak

160

Label lblGodina Alignment = 2 - Center BackColor = &H00FFFFFF& (White) BorderStyle = 1 - Fiksni okvir FontName = MS Sans Serif FontSize = 10.8 Label lblDan Alignment = 2 - Center BackColor = &H00FFFFFF& (White) BorderStyle = 1 - Fiksni okvir FontName = MS Sans Serif FontSize = 10.8 Label lblMjesec Alignment = 2 - Center BackColor = &H00FFFFFF& (White) BorderStyle = 1 - Fiksni okvir FontName = MS Sans Serif FontSize = 10.8 TextBox txvrijeme FontName = MS Sans Serif FontSize = 10.8 CommonDialog cdlBox : Filter = Bitmaps (*.bmp)|*.bmp Label Label1 : Caption = Name FontName = MS Sans Serif FontBold = True FontSize = 9.75 FontItalic = True Kod Osnove Deklaracije Option Explicit Dim Mjeseci(12) As String Dim Dani(12) As Integer

Poglavlje 4: Visual Basic alati nastavak

161

Dim Godina As String cmdExit Click dogañaj Private Sub cmdExit_Click() End End Sub cmdLoad Click Dogañaj Private Sub cmdLoad_Click() cdlbox.ShowOpen imgStudent.Picture = LoadPicture(cdlbox.filename) End Sub cmdNew Click Event: Private Sub cmdNew_Click() 'Postavi tekst okvir prazan txtIme.Text = "" imgStudent.Picture = LoadPicture("") End Sub cmdShow Click Dogañaj: Private Sub cmdShow_Click() Dim Is_Leap As Integer Dim Msg As String, Age As Integer, Pr As String Dim M As Integer, D As Integer, Y As Integer 'Provjeri godine gdje februar ima manje dana If vsbMjesec.Value = 2 And ((vsbGodina.Value Mod 4 = 0 And vsbGodina.Value Mod 100 <> 0) Or vsbGodina.Value Mod 400 = 0) Then Is_Leap = 1 Else Is_Leap = 0 End If 'Provjeri da dan ne prelazi broj dana u mjesecu If vsbDan.Value > Dani(vsbMjesec.Value) + Is_Leap Then

Poglavlje 4 Visual Basic Alati Nastavak

162

MsgBox "Samo" + Str(Dani(vsbMjesec.Value) + Is_Leap) + " dani u " + Mjeseci(vsbMjesec.Value), vbOKOnly + vbCritical, "Pogrešan datum roñenja" Exit Sub End If 'Uzmi tekući datum da izračunaš mjesec , dan i godinu M = Val(Format(Now, "mm")) D = Val(Format(Now, "dd")) Y = Val(Format(Now, "yyyy")) Age = Y - vsbGodina If vsbMjesec.Value > M Or (vsbMjesec.Value = M And vsbDan > D) Then Age = Age - 1 'Provjeri da li je validna godina If Age < 0 Then MsgBox "Datum roñenja je manji od tekućeg datuma", vbOKOnly + vbCritical, "Nije dobar datum roñenja" Exit Sub End If 'Provjeri da je uneseno dobrio ime If txtIme.Text = "" Then MsgBox "Profil zahtjeva ime.", vbOKOnly + vbCritical, "Nije uneseno ime" Exit Sub End If 'Postavi profil u poruku Msg = txtIme.Text + " is a student in the " + Godina + " Godina." + vbCr If OptPol(0).Value = True Then Pr = "On " Else Pr = "Ona " Msg = Msg + Pr + " je" + Str(Age) + " godina star." + vbCr MsgBox Msg, vbOKOnly, "Studentov Profil" End Sub Form Load Dogañaj: Private Sub Form_Load() Mjeseci(1) = "Januar": Dani(1) = 31 Mjeseci(2) = "Februar": Dani(2) = 28 Mjeseci(3) = "Mart": Dani(3) = 31 Mjeseci(4) = "April": Dani(4) = 30 Mjeseci(5) = "Maj": Dani(5) = 31 Mjeseci(6) = "Jun": Dani(6) = 30 Mjeseci(7) = "Jul": Dani(7) = 31

Poglavlje 4: Visual Basic alati nastavak

163

Mjeseci(8) = "Avgust": Dani(8) = 31 Mjeseci(9) = "Septembar": Dani(9) = 30 Mjeseci(10) = "October": Dani(10) = 31 Mjeseci(11) = "Novembar": Dani(11) = 30 Mjeseci(12) = "Decembar": Dani(12) = 31 lblMjesec.Caption = Mjeseci(vsbMjesec.Value) lblDan.Caption = Str(vsbDan.Value) lblGodina.Caption = Str(vsbGodina.Value) Godina = "Prva" End Sub optLevel Click dogañaj: Private Sub optLevel_Click(Index As Integer) Select Case Index Case 0 Godina = "Prva" Case 1 Godina = "Druga" Case 2 Godina = "Treća" Case 3 Godina = "Četvrta" Case 4 Godina = "Peta" Case 5 Godina = "Šesta" End Select End Sub

Poglavlje 4 Visual Basic Alati Nastavak

164

vsbDan Change Dogañaj: Private Sub vsbDan_Change() lblDan.Caption = Str(vsbDan.Value) End Sub vsbMjesec Change Dogañaj: Private Sub vsbMjesec_Change() lblMjesec.Caption = Mjeseci(vsbMjesec.Value) End Sub vsbGodina Change Dogañaj: Private Sub vsbGodina_Change() lblGodina.Caption = Str(vsbGodina.Value) End Sub

Poglavlje 5: Kreiranje samostalne aplikacije

165

5. Kreiranje samostalne aplikacije Pregled • U ovom odjeljku analiziraćemo izradu samostalne aplikacije u Visual Basic-u Dizajniranje i Aplikacija • Prije nego što krenemo sa izradom aplikacije sa crtanjem VB interfejsa,

postavljanja osobina objekta i dodavanja koda, moramo uraditi još neke stvari da bi aplikacija bila dobra.

• Prva stvar je da odredimo koje procese i funkcije treba da uradi vaša

aplikacija. Šta su mogući ulazi i izlazi? Razvijte obavezno nekim od CASE alata dijagram toka procesa aplikacije.

• Odredite koje alatke su Vam potrebne. Da li zadovoljavaju već ugrañeni alati u

VB-u? Da li želite da razvijete svoje alatke ili funkcije? • Kreirajte korisnički interfejs. Kako želite da izgleda osnovna forma? Treba da

bude dostupna korisniku i jednostavna za upotrebu. Nastojte da budete konzistentni sa postojećim Windows interfejsom.

• Ispišite kod. Postavite objašnjenja u kodu i napravite ga preglednim za kasnije

intervencije. Koristite puno module i funkcije. To će Vam skratiti kasniji razvoj.

• Napravite vaš kod pristupačan ili što bi rekli englezi 'user-friendly.' Provjerite razne načine unosa podataka u vašu aplikaciju od strane korisnika i spriječite da se unesu loši podaci (Postaviti automatsku postavljanje prvog velikog slova u prezimenu itd.). Teškoća programera je što nije upoznat sa svim mogućim greškama u njegovom programu od strane korisnika programa.

• Pregledajte kod prije distribucije programa. Češće izvršite mini beta testiranje

sa grupom kolega koji će simulirati korisnike.

Poglavlje 5: Kreiranje samostalne aplikacije

166

5.1 Koriš ćenje podprograma (General Sub Procedures) u aplikac iji • U ranijim programima smo koristili samo procedure koje iniciraju odreñeni

dogañaji nad objektima. Mnoge aplikacije imaju programe koji nisu u relaciji sa ostalim objektima na formi. Takvi programi se zovu opšti podprogrami (general Sub procedure)

• Koristeći opšte podprograme možete rastaviti kompleksnu aplikaciju u više

održivih jedinica koda.. Na taj način dobijamo na čitljivosti i mogućnosti brze promjene koda.

• Definicija podprograma (Sub Procedure ):

Forma podprograma npr. GenlSubProc je:

Sub GenlSubProc (Argumenti) 'Definicija zaglavlja . . End Sub

Definisano zaglavlje ima u nazivu (Sub) . Argumenti su odvojeni zarezom varijable koje prenose ulaz/izlaz podataka u podprogram:

Var1 As Type1, Var2 As Type2, ...

• Primjer podprograma: Npr podprogram (KMEURKonvert ) konvertuje eure u marke i pri tom kao ulaz ima euro (Euro ) i izlaz km (KM).

Sub KMEURKonvert (Euro, KM As Single) KM = Euro /1.96 End Sub

• Pozivanje podprograma:

Postoje dva načina poziva podprograma.

Poglavlje 5: Kreiranje samostalne aplikacije

167

Metod 1 :

Call ProbaSub(Argumenti) (ako nema argumenata ne trebaju zagrade)

Metod 2 :

ProbaSub Argumenti Metod 1 je konzistentniji

• Lokacija podprograma: Lokacija podprograma može biti na dva mjesta u aplikaciji: dodana u formi ili dodana u modulu.. Ako je postavimo u formu onda se može pozivati samo iz te forme , ako je u modulu možemo je pozivati iz aplikacije. Proces kreiranja je da otvorite formu ili modul . Pogledajte da je lista objekta VB-a na (General ) i da na listi Procedure imamo (Declarations ). Proceduru ćemo kreirati komandom Add Procedure iz VB Tools menija. Windows će vam omogućiti da izaberete tip Sub i unesete ime vašeg podprograma. Drugi način je da nakon General Declarations sekcije koda , ukucate Sub sa praznim mjestom i imenom podprograma VB će napisati templejt za proceduru i odmah napisati kraj procedure. Vi tada ispišete kod. Podprogram može biti tipa Public ili Private . Ako je Public možemo ga pozivati iz cijele aplikacije, a ako je Private samo iz tekuće fome.

• Argumenti podprograma: Argumente preuzima podprogram preko referenci znači da će pozivom procedure da se preuzme argument i ostaće promjenjen po izlasku iz procedure.

Kreiranje Modula sa kodom • Ako želite postaviti kod u modul , morate znati kako da kreirate i memorišete

modul. Modul možemo smatrati formom bez objekta, samo kod. • Da kreirate modul kliknite na New Module dugme na alatkama , ili odaberite

Module opciju iz Insert menija.

Poglavlje 5: Kreiranje samostalne aplikacije

168

• Jednom kad je modul aktivan ukucajte kod, upamtite modul. Ime je samo osobina dodjeljena modulu

5.2 Korištenje funkcijskih podprograma u vašoj apli kaciji • Slično Sub podprogramu je i funkcijski (Function) podprogram. Funkcijski

podprogram prosto nazvan funkcijom, izvršava specifični zadatak unutar VB-a i vraća vrijednost. Analizirali smo neke ugrañene funkcije kao što su MsgBox i Format funkcija.

• Definicija funkcije:

Forma funkcijskog podprograma kome smo dali ime GeniFun is:

Function GenlFun(Argumenti) As Type 'Definicija zaglavlja . . GeniFun = ... End Function

Unosimo definiciju Function i njeno ime , a nakon ključne riječi As tip takve funkcije koji odreñuje koja će se vrijednost (broj, string itd ) vratiti u ostatak programa VB-a. Argumenti takoñe mogu proći u funkciji.

• Primjer funkcije: Kao primjer uzećemo funkciju CilVol koja računa volumen cilindra na osnovu visine cilindra (Visina ) i radijusa (Radijus ).

Function CllVol(Visina As Single, Radijus As Single) As Single

Dim Polje As Single

Const PI = 3.1415926

Polje = PI * Radijus ^ 2

CilVol = Polje * Visina

End Sub

Poglavlje 5: Kreiranje samostalne aplikacije

169

• Pozivanje funkciju u programu VB-a:

Da bi pozvali funkciju morate inicijalizirati varijable (odgovarajućeg tipa) i odgovarajuće argumente.

Dim RValue as Integer . . RValue = GenlFunc(Argumenti)

Primjer Da pozovete fumkciju :

Dim Volume As Single . . Volume = CylVol(Height, Radius)

• Lokacija funkcijskih podprograma:

Kao i podprogrami , funkcijski podprogrami mogu se kreirati u formi ili modulu. Isti je način kao i kod podprograma osim ključne riječi Function . Fumkcije takoñe mogu biti Public ili Private ..

5.3 Kratak Primjer: Konverzija Temperature 1. Otvorite Program za konverziju temperature iz prethodnog poglavlja.

Pogledajte da u vsbTemp_Change i vsbTemp_Scroll procedurama ima dosta ponovljenog koda. Prebacite taj kod u Sub podprogram gdje se ispisuju vrijednosti i Function podprogram koji vrši konverziju temperature.

2. Dodaj modul aplikaciji. Kreiraj fukciju (Public) sa imenom DegF_To_DegC . Public Function DegF_To_DegC(DegF As Integer) As I nteger DegF_To_DegC = CInt((DegF - 32) * 5 / 9) End Function

Poglavlje 5: Kreiranje samostalne aplikacije

170

3. Vrati se u formu . Kreiraj Sub podprogram sa imenom PrikaziTemp . Postavi kod iz stare procedure. Ovaj kod koristi funkciju za prebacivanje iz farenhajta u celzius.

Private Sub PrikaziTemp() lblTempF.Caption = Str(TempF) TempC = DegF_To_DegC(TempF) lblTempC.Caption = Str(TempC) End Sub 4. Prekucaj vsbTemp_Change i vsbTemp_Scroll podprograme tako da zovu

novi podprogram. Private Sub vsbTemp_Change() TempF = vsbTemp.Value Call PrikaziTemp End Sub Private Sub vsbTemp_Scroll() Call vsbTemp_Change End Sub 5. Upamti aplikaciju i startaj je. 5.4 Dodavanje Menija Aplikaciji • Vrlo važan dio programa i korisničkog interfejsa je meni. Meni se jednostavno

ubacuje u Visual Basic program korištenjem komande Menu Editor . • Dobar način za početak definisanja menija je da kreirate strukturu menija prije

startanja programa. Morate takoñe odrediti koji program će se startati i ostale osobine svakog od menija.

Primjer Tipični meni:

File Edit Format New Cut Bold Open Copy Italic Save Paste Underline Size Exit 10

Poglavlje 5: Kreiranje samostalne aplikacije

171

15 20

Podvučeni karakteri su ključna slova kojima se preko CTRL komande može direktno pristupiti komandama. Npr. komanda, New je pod-element File meni. Sa tom strukturom Meni izgleda kao:

File Edit Format

• Meni Editor vam omogućava da definišete strukturu menija, Dodijelite pristupne kodove i tastere sa tastature koji se uz pomoć CTRL-Taster mogu i nataj način startati. Nakon toga dodajete kod dogañaju Klikni na miša. Meni Editor se izbore iz Tools menija sa glavnog menija VB-a tako što se nakon toga klikne na padajućem meniju na Menu Editor . To je moguće kada ja na formi postavljeno da je meni aktivan. Nakon što odaberete editor i unesete strukturu menija on će izgledati kao na slici:

Sl. 43 Izgled Menija

Svaka stavka u meniju zahtjeva nekoliko unosa u toku dizajniranja.

Poglavlje 5: Kreiranje samostalne aplikacije

172

• Osobina (Caption) je tekst koji će se pojaviti kada se meni otvori. Pristupni ključ se definiše korištenjem ampesenda ampersand (&).

• Ime okvir ( Name) je mjesto gdje upisujete kontrolno ime za svaku stavku. To

je analogna osobina Name kod komandnog dugmeta. Svaka stavka mora da ima ime podprograma koji će se startati kada kliknemo na meni. Prefiks mnu se koristi za stavke menija. Imena odgovaraju stavki npr. Ako je meni New ispod File menija koristi za naziv mnuFileNew .

• Index okvira se koristi za indeksiranje meni stavki i definisanje kontrolnog

polja za potrebe VB-a kod izbora stavki. • Shortcut padajući meni se koristi da Dodijelimo skraćeni pristup meniju. Na

primjer Ctrl+X za odsjecanje teksta. • HelpContextID i NegotiatePosition okviri odnose se na korištenje help-a • Svaki meni ima 4 osobine koje su mu dodijeljene. Te osobine se mogu

postaviti kod dizajniranja ili preko programa. Te osobine su:

Checked Javlja sa True da li je opcija postavljena ili nije. Enabled Ako je True, stavka menija je omogućena. Ako

je False, stavka menija je siva i ne može se izabrati.

Visible Dozvoljava da se stavka vidi u meniju. WindowList Koristi se kod Višestrukog dokument interfejsa

(MDI).

• Na vrhu Editora menija (Menu Editor ) liste ispisuje se hijerarhijska lista meni liste. Desne i lijeve strele podešavaju nivoe stavki menija, dok gornja i donja strelica pomjeraju stavke menija unutar istog nivoa. Komande Next , Insert , i Delete dugmad koriste se da pomjere izabranu stavku dole jednu liniju, ubacuje novu liniju za unos nove stavke ili briše izabranu stavku.

• Sada ćemo razjasniti proces unosa menija sa prethodnog primjera. Da bi to

uradili postavimo tri menija na vrhu jedan ispod drugog. Za svaku stavku sa liste postavimo osobine (Caption ) sa pristupnim ključem zatim ime (Name).

Poglavlje 5: Kreiranje samostalne aplikacije

173

• Nakon unosa strukture kompletna lista na vrhu Meni Editor-a lista izgleda kao na slici:

Name

mnuFile &File

mnuFileNew ......&New

mnuFileOpen ......&Open

mnuFileSave ......&Save

mnuFileBar ...... -

mnuFileExit ......E&xit

mnuEdit &Edit

mnuEditCut ......Cu&t Ctrl+X

mnuEditCopy ......&Copy Ctrl+C

mnuEditPaste ......&Paste Ctrl+V

mnuFmt F&ormat

mnuFmtBold ......Bold

mnuFmtItalic ...... Italic

mnuFmtUnderline ......Underline

mnuFmtSize ......Size

mnuFmtSize10 ............. 10

mnuFmtSize15 ............. 15

mnuFmtSize20 ............. 20

Poglavlje 5: Kreiranje samostalne aplikacije

174

Primjer 5.1 Jednostavan Editor teksta 1. Startaj nov projekt. Ovaj editor ćemo uraditi sa Meni Editor komandom. Prije

nego što definišemo menije postavićemo ostale objekte na formu. 2. Postavite veći tekst okvir. Postavite osobine forme i tekst okvira:

Form1: BorderStyle 1-Fiksni okvir Caption Jednostavan Editor teksta Name frmEdit Text1: BorderStyle 1-Fiksni okvir MultiLine True Name txtEdit ScrollBars 2-Vertical Text [Blank]

Forma izgleda kao na slici:

Poglavlje 5: Kreiranje samostalne aplikacije

175

3. Dodajemo meni strukturu preko Meni Editor-a:

File Format New Bold Italic Exit Underline Size Small Medium Large

Dodijelimo pristupne ključeve. Postavimo osobine, imene i skraćene Bring up

komande.

Caption Name Shortcut &File mnuFile [None] &New mnuFileNew [None] - mnuFileBar [None] E&xit mnuFileExit [None] F&ormat mnuFmt [None] & Bold mnuFmt Bold Ctrl+B &Italic mnuFmtItalic Ctrl+I &Underline mnuFmtUnderline Ctrl+U &Size mnuFmtSize [None] &Small mnuFmtSizeSmall Ctrl+S &Medium mnuFmtSizeMedium Ctrl+M &Large mnuFmtSizeLarge Ctrl+L

Meni će izgledati kao na slici:

Poglavlje 5: Kreiranje samostalne aplikacije

176

4. Svaka stavka menija koja izvršava neku akciju zahtjeva kod za dogañaj klika mišem (Click) . Samo stavke menija koje nemaju dogañaja su meni i pod-meni zaglavlja, sa imenom File , Format , i Size. Svi ostali zahtjevaju kod. Koristi sledeći kod za svaku stavku menija i njen dogañaj kod klika mišem. (Možete koristiti komande CUT i PASTE.)

Ako se klikne na meni File-New starta se komanda mnuFileNew : Private Sub mnuFileNew_Click() Dim Response As Integer Response = MsgBox("Da li stvarno želite novu datote ku?", vbYesNo +

vbQuestion, "Novi Fajl") If Response = vbYes Then txtEdit.Text = "" End Sub Ako kliknemo i izaberemo File-Exit starta se komanda mnuFileExit : Private Sub mnuFileExit_Click() Dim Response As Integer Response = MsgBox("Da li želite da napustite Editor teksta?", vbYesNo +

vbCritical + vbDefaultButton2, "Izlazak iz editor-a ") If Response = vbNo Then Exit Sub Else End End If End Sub Ako se klikne na meni Format-Bold starta se komanda mnuFmtBold : Private Sub mnuFmtBold_Click() 'Postavlja status zadebljanja mnuFmtBold.Checked = Not (mnuFmtBold.Checked) txtEdit.FontBold = Not (txtEdit.FontBold) End Sub

Poglavlje 5: Kreiranje samostalne aplikacije

177

Ako se klikne na meni Format-Italic starta se komanda mnuFmtItalic : Private Sub mnuFmtItalic_Click() 'Toggle italic font status mnuFmtItalic.Checked = Not (mnuFmtItalic.Checked) txtEdit.FontItalic = Not (txtEdit.FontItalic) End Sub Ako se klikne na meni Format-Underline mnuFmtUnderline : Private Sub mnuFmtUnderline_Click() 'Postavlja podvla čenje teksta mnuFmtUnderline.Checked = Not (mnuFmtUnderline.Che cked) txtEdit.FontUnderline = Not (txtEdit.FontUnderline ) End Sub Ako izaberemo jedan od 3 podmenija za veličinu teksta , a prethodno

markiramo tekst mijenja se veličina teksta: Private Sub mnuFmtSizeSmall_Click() 'Postavljamo veli činu fonta na manji mnuFmtSizeSmall.Checked = True mnuFmtSizeMedium.Checked = False mnuFmtSizeLarge.Checked = False txtEdit.FontSize = 8 End Sub Private Sub mnuFmtSizeMedium_Click() ' Postavljamo veli činu fonta na srednji mnuFmtSizeSmall.Checked = False mnuFmtSizeMedium.Checked = True mnuFmtSizeLarge.Checked = False txtEdit.FontSize = 12 End Sub Private Sub mnuFmtSizeLarge_Click() ' Postavljamo veli činu fonta na ve ći mnuFmtSizeSmall.Checked = False mnuFmtSizeMedium.Checked = False mnuFmtSizeLarge.Checked = True txtEdit.FontSize = 18 End Sub

Poglavlje 5: Kreiranje samostalne aplikacije

178

5. Upamti aplikaciju kao Editor Teksta. Testiraj menije i probaj skraćene

ključeve. 5.5 Koriš ćenje menija koji iska če (Pop-Up) • Meni koji iska če (Pop-up) može se pojaviti bilo gdje na formi i aktivira se sa

jednim ili dva klika miša. Mnoge Windows aplikacijea, i sam Windows, koriste meni koji iskače. Npr. Korišćenje desnog dugmeta miša ispsuje iskačući meni.

• Dodavanje menija koji iskače u Visual Basic aplikaciji je proces sa dva koraka.

Prvo kreiramo meni u Meni Editor-u. Ako kreirate jedinstven meni koji iskače, postavite osobinu Visible na False kod dizajniranja. Jednom kreiran meni se ispisuje u formi koristeći PopupMenu metod.

• Primjer pozivanja menija na iskakanje:

ImeObjekta.PopupMenu ImeMenija, Flags, X, Y

Ime objekta se može ispustiti ako radimo u formi koja ima predefinisan postojeći meni:

MenuName Puno ime iskačućeg menija. Flags Odreñuje lokaciju menija (opciono). X, Y (X, Y) koordinate menija , ako ih nema uzima se

tekuća lokacija. • Flags se sastoji od dvije konstante. Prva konstanta odreñuje lokaciju:

Vrijednost Zna čenje Simboli čka konstanta 0 Meni je po X osi podešen u lijevo vbPopupMenuLeftAlign 4 Meni je po X osi podešen u centar vbPopupMenuCenterAlign 8 Meni je po X osi podešen u desno vbPopupMenuRightAlign

Druga konstanta odreñuje:

Vrijednost Zna čenje Simboli čka konstanta 0 Meni reaguje na lijevo dugme miša vbPopupMenuLeftButton 2 Meni reaguje na oba dugmeta miša vbPopupMenuRightButton

Poglavlje 5: Kreiranje samostalne aplikacije

179

• Vi odreñujete gdje ćete postaviti kod koji će se ispisati kao iskačući meni na osnovu PopupMenu metode. Inače se meni ispisuje na klik dogañaj ili dokañaj kad se miš pomjeri dole (MouseDown) . Standar Windows-a je da iskačući meni odgovara desnim klikom na miša.

• Kao i ostali meniji , svaka stavka na iskačućem meniju zahtijeva kod za

odgovarajući dogañaj. 5.6 Dodavanje sli čica (Icons) formi: • Kada startate neku aplikaciju pojavi se mala ikona na lijevom gornjem uglu

forme. Ona takoñe predstavlja minimiziranu formu. Sličica je uobičajeno postavljena u VB-u. Korištenjem osobine Icon na osobinama forme možete promjeniti sličicu.

• Ideja je da Dodijelimo sličicu formi. Moramo kliknuti mišen na osobinu Icon u

osobinama Windows-a forme. Kliknemo na (...) i dobijemo okvir za selekciju fajla koji će biti nova sličica forme.

• Sličica mora imati .ico nastavak fajla. 5.7 Crtanje i promjena vlastitih sli čica (Icons): • Vb sadrži odreñen broj fajlova sa sličicama koje se mogu dodijeliti formi. Uz

pomoć dodatnih programa možete dizajnirati vlastitu sličicu za fromu. • Jedan od besplatnih programa je IconEdit koji omogućava dzajniranje i

pamćenje ikona. • Startate IconEdit.exe program.

Poglavlje 5: Kreiranje samostalne aplikacije

180

Sl. 44 Izgled programa IconEdit

• Osnovna ideja je da nacrtate sličicu u 32 x 32 tačke. Možete crtati tačke, linije, ovale, trougle itd. Dostupne su različite boje. Jednom kompletirana ikona se upamti i dodaje formi.

Poglavlje 5: Kreiranje samostalne aplikacije

181

5.8 Kreiranje Visual Basic izvršnog fajla • Kada napravimo aplikaciju neophodan nam je Visual Basic. Cilj je kreirati

aplikaciju koja će se izvoditi bez VB-a. To znači da kreiramo izvršni fajl ( executable) .

• Kad potpuno uradimo program ( Upamtimo sve forme, module i projekt

fajlove), tada možemo pristupiti izradi izvršnog fajla. • Izvršni fajlovi imaju nastavak .exe. Da kreiramo izvršni fajl izaberemo Make

[Ime projekta] exe iz Visual Basic File menija. Tada se pojavi dijaloška kutija komande za pravljenje exe fajla:

Sl. 45 Dijaloška kutija komande za kreiranje exe fajla

• Mi možemo Mijenjati dve stvari: Title i Icon . Title je natpis koji će imati aplikacija kad se upamti i nema veze sa imenom projekta koga smo kreirali u VB-u. Sličica (Icon ) se preuzima sa forme iz aplikacije. Ona će identifikovati datu aplikaciju i sve njene forme.

Poglavlje 5: Kreiranje samostalne aplikacije

182

• Kada selektujete ove opcije vratite se u Make EXE File dijalošku kutiju, izaberete direktorij (najbolje je uzeti isti direktorij gdje vam se nalazi aplikacija) i ime za izvršni fajl. Kliknuti OK i exe fajl je kreiran.

• Koristi Windows Explorer da provjeriš gdje je fajl. Klikni dvaput na fajl i fajl će

se startati!

Primjer 5.2 Tekst Editor – Stvaranje instalacionog fajla za distribuciju aplikacije i dodjeljivanje sli čice aplikaciji 1. Otvorite projekt Tekst Editor. Dodijelite sličicu formi postavljajući osobinu Icon

tekuće forme. 2. Kreirajte izvršni verziju Tekst Editora. Provjerite kreirani exe fajl i startajte ga

preko Windows Explorer. 3. Kreirajte prečicu za startanje izvršnog fajla. Kliknite na Start dugme na listi

poslova, na Settings i Taskbar . 5.9 Koriš ćenje paketa za kreiranje instalacionog paketa (Visua l Basic Package & Deployment Wizard) • Problem je da ako nema instaliranog VB-a naš program neće raditi. To je zato

što Visual Basic sadrži dodatne fajlove koji se zovu dinamičke biblioteke (dynamic link libraries DLL ) da bi radio ispravno. Te biblioteke omogućuju kod da forma radi ispravno.

• Da bi dozvolili da drugi izvršavaju vašu aplikaciju, morate im dati izvršni fajl

(exe) i najmanje dve dinamičke biblioteke. • Visual Basic rješava ovaj problem sa dobrim alatom za distribuciju programa u

VB-u (Visual Basic Package & Deployment Wizard) . Ovaj čarobnjak je instaliran zajedno sa VB-om.

• ( Package & Deployment Wizard ) pretvara aplikaciju za distribuciju. Pomaže

Vam da odredite koje fajlove ćete prenositi, kreira izvršni (Setup ) program (ispisan u Visual Basic-u) koji radi na svim windows platformama (setup.exe ), kompresuje sve potrebne fajlove da smanji prostor na disku i zapisuje kompresovanje fajlove na distribucioni medij.

Poglavlje 5: Kreiranje samostalne aplikacije

183

• Za start ovog paketa, klikni Start dugme Windows-a, nañi Visual Basic programski direktorij klikni na Visual Basic Tools , tada izaberi Package & Deployment Wizard.

• Setap ide u nekoliko koraka:

Korak 1. Po četne informacije. Unesi ime fajla svog projekta (.vbp). Klikni na (...) i izaberi vbp fajl. Ako ni jedan izvršni (.exe) fajl ne postoji , jedan će se kreirati. Klikni na ‘Package’ dugme i nastavi. Ako imaš prethodno upamćen fajl paket za setap odabranog projekta poziva pakovani fajl tokom ovog koraka.

Korak 2. Tip paketa. Izaberi standardni setap (Standard Setup Package). Klikni na Next za nastavak. Korak 3. Direktorij paketa. Odaberi direktorij gdje ćeš upamtiti aplikacijski paket za distribuciju.. Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak

Poglavlje 5: Kreiranje samostalne aplikacije

184

Korak 4. Uklju či fajlove. Program (Package & Deployment Wizard) izlistaće sve fajlove koje treba aplikacija da bi radila ispravno. Ako vaša aplikacija zahtijeva dodatni fajl morate ga dodati sa klikom na (Klikni na Add). Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak. Korak 5. Šta su Cab fajlovi ?. Distribucioni fajlovi se zovu cab fajlovi (imaju cab nastavak). Izaberite opciju (Single cab) ako koristite CD kao medij za pamćenje aplikacije. Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak Korak 6. Instalacioni Natpis. Unesite natpis koji želite da ima Vaša aplikacija. Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak Korak 7. Stavke na start meniju. U ovom koraku odreñujemo gdje će se instalisati aplikacija na Start meniju. Možete uzete tekući (default) izbor. Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak Korak 8. Instalaciona lokacija. Možete promijeniti lokaciju za instalisane fajlove. Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak Korak 9. Dijeljeni Fajlovi. Neki fajlovi u vašoj aplikaciji mogu se dijeliti sa drugim aplikacijama. Ti fajlovi se ne brišu kada se aplikacija deinstalira. Klikni na Next za nastavak. Klikni na Back to za povratak u prethodni korak Korak 10. I kona čno Kraj! Dodijeli ime da upamtiš skriptu za čarobnjaka (fajl koji sadrži odgovore na prethodno upućena pitanja.) Klikni na Finish za nastavak. Klikni na Back za povratak na prethodni korak. Čarobnjak će kreirati cab fajl ili fajlove i javiti kad bude gotovo. Vratimo se na Package & Deployment Wizard otvoreni prozor.. Kliknemo na Close. Korak 11. Napravi distribuvioni disk. Cab fajlovi se sada moraju kopirati na distribucioni medij. Ako ste nappravili jedan CAB fajl (za CD) , kopiraj fajl setup fajl i setup.lst fajl na CD ROM.. Za instalaciju aplikacije jednostavno ubaci CD u CD ROM . Preko windows explorera startaj setup.exe program.

Primjer 5.3 Tekst editor – Kreiranje distribucionog diska

Poglavlje 5: Kreiranje samostalne aplikacije

185

1. Otvori program Tekst Editor. Kreiraj distribucioni disk koristeći Package & Deployment Wizard.

2. Pokušaj ga instalirati na kompjuter. Instalaciju uradi preko distribucijskog

diska.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

186

6. Grafi čke tehnike u Visual Basic-u Uvod • U prethodnim poglavljima koristili smo neke grafičke alatke: linije, okvire, okvir

sa slikom, i okvir za crteže. U ovom poglavlju proširićemo to znanje na crtanje linija, krugova, crtanje slobodnim stilom, jednostavne animacije i osnovne programske rutine za crtanje.

6.1 Grafi čke metode • Grafičke metode mogu biti primijenjene na forme i okvire za sliku. S tim

metodama možemo crtati linije , okvire i krugove. Prethodno moramo obraditi dvije važne stvari. To su upravljanje ekranom (screen management) i koordinate ekrana (screen coordinates) .

• Najjednostavniji način da održavate grafiku je da postavite na formu ili okvir za

sliku AutoRedraw osobinu na True . U tom slučaju Visual Basic će uvijek održavati kopiju grafičkog izlaza u memoriji i kreirati takozvanu trajnu grafiku ( persistent graphics ). Drugi način je da postavite (AutoRedraw u False) i da koristite grafičke komande u formi ili okviru za sliku preko Paint dogañaja. Možemo reći da imaju prednosti i nedostataka oba načina. Svi grafički metodi počinju od osnovnog koordinatnog sistema:

Poglavlje 6: Grafičke tehnike u Visual Basic-u

187

X (horizontalne) kordinate idu s ljeva na desno polazeći od 0 i završavajući sa SkalaX - 1 . Vertikalnae koordinate y počinju od 0 i idu do SkalaY - 1 . Tačke u koordinatnom sistemu odgovaraju Kartezijanovom paru (x, y) . SkalaX i SkalaY definisane su u osobini grafičkog objekta. Nisu slične Width i Height osobinama. Za sva mjerenja u dvokoordinatnom sistemu SkalaX je manja od Width i SkalaY od Height. Znači ne možemo nacrtati sve tačke u formi ili okviru slike.

• PSet Metod :

Da bi postavili jednu tačku u grafički objekt (formu ili okvir za sliku) u odgovarajuću boju koristimo PSet metodu. Često to radimo da kreiramo startnu tačku za ostale grafičke metode:

ObjektIme.PSet (x, y), Boja Gdje je ObjektIme ime objekta sa forme, (x, y) su odabrane tačke , a Boja je ime ili heksadecimalni prikaz boje. Ako nemamo imena objekta pretpostavlja se da to vrijedi za tekući izabrani objekt. Ako nema Boja , koristi se osobina ForeColor tekućeg objekta. PSet se koristi da inicijalizira neke buduće crtaće procese.

• Pset Primjer: Ova forma ima SkalaX 3975 (Width 4095) i SkalaY 2400 (Height 2805). Komanda:

Skala X (0, 0)

Skala Y

y

x

Poglavlje 6: Grafičke tehnike u Visual Basic-u

188

PSet (1000, 500)

Daje sledeći reziltat:

Markirana tačka će biti u boji ForeColor, u ostalim slučajevima crna pokazuje kartezijanove koordinate (1000, 500) – ti markeri se ne vide na formi. Ako želite isprobati ovaj primjer i ostale grafičke metode postavite kod u Form_Click dogañaj. Startajte prejakt i klikom na formu pogledajte rezultat (potrebno je zbog automatskog precrtavanja.

• CurrentX i CurrentY :

Nakon svake operacije crtanja, koordinate zadnje tačke postave se u Visual Basic-u the, CurrentX i CuurentY . To možemo i promjeniti ako ih upišemo:

Current X = 1000 Current Y = 500

ekvivalentno sa:

PSet(1000, 500)

(1000, 500)

4095

3975

2805 2400

Poglavlje 6: Grafičke tehnike u Visual Basic-u

189

• Linijski metod:

Linijska metoda je vrlo jednostavna. Koristimo je za crtanje liniskih segmenata, okvira i popunjenih okvira. Sintaksa je:

ObjektIme.Line (x1, y1) - (x2, y2), Boja ObjektIme , (x1, y1) su startne koordinate, (x2, y2) krajnje koordinate, i Boja linije. Kao i PSet, ako izostavimo ObjektIme crtež je vezan za tekuću formu. Ako je Boja izostavljena koristi se ForeColor osobina. Ako crtamo liniju od (CurrentX, CurrentY) do (x2, y2), koristimo:

ObjektIme.Line - (x2, y2), Boja Nema potrebe da se specificira startna tačka ako imamo CurrenX i CurrentX tačke. Za crtanje okvira sa tačkama (x1, y1) i (x2, y2), koristimo:

ObjektIme.Line (x1, y1) - (x2, y2), Boja, B A da popunite okvir koristi se tekuća osobina (FillPattern ):

ObjektIme.Line (x1, y1) - (x2, y2), Boja, BF

• Primjeri linija: Koristeći prethodno definisanu formu koristimo sledeće komande:

Line (1000, 500) - (3000, 2000) Line - (3000, 1000)

Dobićete sledeće linijske segmente:

Poglavlje 6: Grafičke tehnike u Visual Basic-u

190

Komande:

Line (1000, 500) - (3000, 2000), , B

Nacrtaće okvir na slici:

• Crtanje kruga:

Metoda Circle koristi se za crtanje krugova, elipsi, arkusa i djelova kruga. Pogledajte krug – pogledajte ostale modove crtanja. Sintaksa je:

ObjektIme.Circle (x, y), r, Boja Ova komanda će nacrtati krug sa centrom na (x, y) , radijusom r, i koristeći boju Boja .

(3000, 2000)

(3000,2000)

(1000, 500)

(1000, 500)

(3000, 1000)

Poglavlje 6: Grafičke tehnike u Visual Basic-u

191

• Primjer kruga:

Circle (2000, 1000), 800 Daje rezultate:

• Metod Print:

Ova metoda koristi za ispis teksta u tačno odgovarajućoj lokaciji koristeći Print metod. Tekst će se ispisati u formi. Sintaksa je:

ObjektIme.Print [informacija za ispis] Ispisane mogu biti varijable, tekst ili kombinacija. Informacija će se ispisati na objektu u tački u kojoj se prethodna komanda zatekla CurrentX i CurrentY . Ako nije specificirana boja će koristiti ForeColor osobinu i font specificiran u osobini Font .

• Primjer Print Metod: CurrentX=200 CurrentY=200 Print "Ovo je primjer teksta"

(2000, 1000)

800

Poglavlje 6: Grafičke tehnike u Visual Basic-u

192

Daće sledeći rezultat:

• Cls Metod: Da očistite grafički prostor koristite Cls metod. Sintaksa je:

ObjektIme.Cls Ako nije dato ime očisti se tekuća forma. • Svaki objekt u VB-u možete tretirati kao mjesto za crtanje i koristiti grafički

metod za debljine linije, popune bojom i ostale grafičke mogućnosti koje se kontrolišu u osobinama objekta

6.2 Korištenje Boja • Sve grafičke metode koriste boje tj. Color argumente. Ako taj argument

nedostaje koristi se ForeColor osobina. Boja (Color ) je obično heksadecimalna ili ako je odreñena može biti i sa imenom definisana..

• Simboličke konstante:

Visual Basic ima osam simboličkih konstanata za prestavljanje nekih osnovnih boja.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

193

Constanta Vrijednost Boja (Color) vbBlack 0x0 Black vbRed 0xFF Red vbGreen 0xFF00 Green vbYellow 0xFFFF Yellow vbBlue 0xFF0000 Blue vbMagenta 0xFF00FF Magenta vbCyan 0xFFFF00 Cyan vbWhite 0xFFFFFF White

• QBColor Funkcija:

Zq potrebe Microsoft QBasic, GW-Basic i QuickBasic programera, Visual Basic daje šesnaest mogućih bojasa QBColor funkcijom. Boja se specificira kao indeks od QBColor(Indeks) gdje je:

Indeks Color Indeks Color 0 Black 8 Gray 1 Blue 9 Light blue 2 Green 10 Light green 3 Cyan 11 Light cyan 4 Red 12 Light red 5 Magenta 13 Light magenta 6 Brown 14 Yellow 7 White 15 Light (bright) white

• RGB Funkcija:

RGB funkcija se koristi da proizvede jednu od preko 224 (preko 16 miliona) boja! Sintaksa ove RGB je:

RGB(Red, Green, Blue) Gdje je Red, Green , i Blue cijeli broj izmjerenog intenziteta odgovarajuće primarne boje. Vrijednosti su od 0 (nema intenziteta) do 255 (najveći intenzitet). Npr., RGB(255, 255, 0) daje žutu boju.

• Bilo koja od prezentacija može se koristiti po potrebi.

• Primjeri boja sa COLOR:

frmPrimjer.BackColor = vbGreen picPrimjer.FillColor = QBColor(3)

Poglavlje 6: Grafičke tehnike u Visual Basic-u

194

lblPrimjer.ForeColor = RGB(100, 100, 100) 6.3 Dogañaji uzrokovani klikom miša • Postoje razni dogañaji uzrokovani klikom ili pomjerajem miša po grafičkoj

površini za crtanje. Mi obično koristimo jedan ili dva klika na objekt (Klikni na i DblClick) . Takoñe vidjet ćemo kako koristimo ostale dogañaje miša za crtanje mišem..

• Pomjeraj miša nadolje (MouseDown ) dogañaj:

MouseDown dogañaj se desi kada pritisnemo miša u trenutku kada miš pomjeramo preko objekta . To izgleda ovako:

Sub ObjectIme_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) . . End Sub

The arguments are:

Button Odreñuje koje dugme je prittisnuto. Shift Odreñuje status Shift, Ctrl i Alt tastera. X, Y Koordinate kursora miša kada je dugme

pritisnuto. Vrijednost Button argumenta su:

Simboli čka konstanta Vrijednost Opis vbLeftButton 1 lijevo dugme pritisnuto. vbRightButton 2 desno dugme pritisnuto. vbMiddleButton 4 srednje dugme pritisnuto.

Samo jedno dugme se može detektovati sa MouseDown dogañajem. Vrijednosti za Shift argument su:

Simboli čka konstanta Vrijednost Opis vbShiftMask 1 Shift taster je pritisnuta. vbCtrlMask 2 Ctrl taster je pritisnuta. vbAltMask 4 Alt taster je pritisnuta.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

195

Shift argument predstavlja višestruku tipku sa tastature. Npr. Ako je Shift = 5 (vbShiftMask + vbAltMask), oba Shift i Alt tasterak su pritisnute kada je miš pritisnut i kreće se na dolje preko objekta , tada imamo i MouseDown dogañaj.

• Pomjeraj miša nagore (MouseUp ) dogañaj:

MouseUp dogañaj je sličan MouseDown dogañaju . On se starta kada je miš pomjeren naviše. Procedura je:

Sub ObjectName_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) . . End Sub

Argumenti su:

Button Odreñuje koje dugme miša će biti pritisnuto. Shift Odreñuje stanje Shift, Ctrl, i Alt tastera. X, Y Koordinate kursora miša kad je dugme miša

pritisnuto. The Button i Shift konstante su iste kao za MouseDown dogañaj.

• Pomjeranje miša (MouseMove ) dogañaj:

MouseMove dgañaj se starta kontinualno kada se miš pomjera. Procedura je:

Sub ObjectName_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) . . End Sub

Argumenti su:

Button Odreñuje koje dugme miša će biti pritisnuto. Shift Odreñuje stanje Shift, Ctrl, i Alt tastera. X, Y Koordinate kursora miša kad je dugme miša

pritisnuto.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

196

Konstante Button i Shift su iste one kao kod MouseDown dogañaja. Razlika je što Button argument predstavlja da li je pritisnut taster miša ili ne. Ako je Button = 0, nijedno dugme miša nije pritisnuto. Ako je Button = 3 (vbLeftButton + vbRightButton), oba dugmeta su pritisnuta.

Primjer 6.1 Crna Kutija 1. Startamo novu aplikaciju. Pravimo crnu kutiju po kojoj možemo crtati u boji. 2. Postavimo jednostavnu meni strukturu koristeći Meni Editor iz prethodnog

poglavlja. Meni ima jednostavnu strukturu:

File New Exit

Osobine menija su:

Caption Name &File mnuFile &New mnuFileNew - mnuFileSep E&xit mnuFileExit

3. Postavite jedan okvir za sliku i jednu labelu (da bi postavili boju za crtanje) on

the form. Postavite sledeće osobine:

Form1 : BorderStyle 1-Fiksni okvir Caption Crnakutija Name frmKutija Picture1 : Name PicCrtaj Label1 : BorderStyle 1-Fiksni okvir Caption [Blank] Name lblBoja

Poglavlje 6: Grafičke tehnike u Visual Basic-u

197

Forma će izgledati kao na slici:

4. Sada postavi okvir za labelu (ona kreira boju i zove se lblBoja ) kopiraj kao

polje osam linijskih okvira vertikalno na formi. 5. Unesi kod ispod general declarations polja. Postavi varijablu CrtajSad da

nam odreñuje kad je crtanje uključeno , a kad ne. Option Explicit Dim CrtajSad As Boolean 6. Dodaj kod proceduri. Kod dodajemo formi u njenom učitavanju Form_Load , procedura će pozvati

boje za svaku labelu. Postaviće pozadinsku boju (BackColor) u crno i ForeColor u svijetlo bijelu (Bright White ).

Private Sub Form_Load() 'Pozivamo boje u sve labele Dim i As Integer For i = 0 To 7 lblBoja(I).BackColor = QBColor(I + 8) Next I

Poglavlje 6: Grafičke tehnike u Visual Basic-u

198

PicCrtaj.ForeColor = QBColor(15) ‘ Bijelo PicCrtaj.BackColor = QBColor(0) ‘ Crno End Sub U meniju mnuFileNew_Click proceduri, čemo postaviti osnovnu komandu.

Ako nismo zaboravili okvir za sliku se čisti sa Cls metodom. Private Sub mnuFileNew_Click() 'Pitamo korisnika želi li da starta crtanje Dim Response As Integer Response = MsgBox("a li želite da startate crtanje? ", vbYesNo +

vbQuestion, "Novi crtež ") If Response = vbYes Then PicCrtaj.Cls End Sub U meniju mnuFileExit_Click proceduri, provjeri da li korisnik želi da izañe iz

aplikacije. Private Sub mnuFileExit_Click() 'Provjerimo da li korisnik želi da iza ñe iz aplikacije Dim Response As Integer Response = MsgBox("Želite da napustite program?", vbYesNo + _ vbCritical + vbDefaultButton2, "Izlazak iz programa " ) If Response = vbYes Then End End Sub Kada je lijevo dugme miša pritisnuto, crtanje se starta pomjeranjem miša i

PicCrtaj_MouseDown procedurom. Private Sub PicCrtaj_MouseDown(Button As Integer, Shift As Integer, X

As Single, Y As Single) 'Crtanje po činje If Button = vbLeftButton Then CrtajSad = True PicCrtaj.Teku ćiX = X PicCrtaj.Teku ćiY = Y End If End Sub Kada se crtanje završi CrtajSad prekidač se postavi u PicCrtaj_MouseUp

proceduri.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

199

Private Sub PicCrtaj_MouseUp(Button As Integer, Sh ift As Integer_ ,X As Single, Y As Single) 'Kraj crtanja If Button = vbLeftButton Then CrtajSad = False End Sub Kada je miš pomjeran i CrtajSad prekidač je True, nacrtana je linija sa

trenutno izabranom bojom u PicCrtaj_MouseMove proceduri. Private Sub PicCrtaj_MouseMove(Button As Integer, Shift As _ Integer, X As Single, Y As Single) 'Crtanje se nastavlja If CrtajSad Then PicCrtaj.Line -(X, Y), PicCrtaj.F oreColor End Sub I na kraju kada kliknemo na labelu, boja se promijeni u lblBoja_Click

proceduri. Private Sub lblBoja_Click (Index As Integer) 'Postavi ton i resetuj boju Beep PicCrtaj.ForeColor = lblBoja(Index).BackColor End Sub 7. startaj aplikaciju. Klikni na labelu i promjeni boju. Upamti aplikaciju. 6.4 Dogañaji prevla čenja i prenošenja (Drag and drop) • Dogañaji prevlačenja i prenošenja (drag and drop) su važni dogañaji kod

korištenja miša. To je proces koji dozvoljava mišu da pokupi neki objekt na formi i pomjeri ga na drugu lokaciju.

• Dogañaji prevlačenja i prenošenja dozvoljavaju da kreiramo jednostavan

korisnički interfejs gdje se program izvodi bez komandi, menija ili dugmadi. Ova metoda je jako dobra, brza i mnogo brža od drugih metoda.. U primjeru koji slijedi prenosićemo fajl u drugi direktorij ili dokument na štampač za štampanje.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

200

• Bilo koji Visual Basic objekt može se se prevući , ali mi koristimo pretežno slike. Objekt koji prevlačimo zovemo izvorni (source) objekt. Objekt na koji prebacujemo zove se ciljani objekt (target) .

• Osobine prevlačenja objekta:

Ako se jedan objekt prevlači dve osobine se moraju postaviti:

DragMode Omogućava prevlačenje objekta (isključe se mogućnosti prijema klik komande ili MouseDown dogažaja). Obično se koristi 1-Automatik (vbAutomatic ).

DragIcon Odrediti ikonu koja će se prikazati kad se objekt pomjera.

Kad se objekt prevlači ne pomjera se objekt nego sličica koju smo postavili tzv. (DragIcon ). Pomjeranje objekta, zahtjeva i dodatni kod koristeći Move metod.

• DragDrop Dogañaj: DragDrop dogañaj se starta kada se izvorni objekt klikne i prevlači:

Sub ObjectName_DragDrop(Source As Control, X As Single, Y As Single) . . End Sub

Argumenti su:

Source Objekt koga prevlačimo X, Y Tekuće koordinate miša.

• DragOver Dogañaj:

DragOver dogañaj je kada se izvorni objekt prevlači preko drugog objekta. Procedura je:

Private Sub ObjectName_DragOver(Source As Control, X As Single, Y As Single, State As Integer) . . End Sub

Poglavlje 6: Grafičke tehnike u Visual Basic-u

201

Prva tri argumenta su ista kao i kod DragDrop dogañaja. State argument nam kaže gdje je izvorni objekt. Vrijednosti su 0-Startan vbEnter ), 1-Odlazi (vbLeave ), 2-Preko (vbOver ).

• Metoda prevlačenja (Drag and Drop) Metoda:

Drag Starta i zaustavlja ručno objekt Move Koristi se za pomjeranje objekta

Primjer Da bi pomjerili izvorni objekt na lokaciju specificiranu koordinatama X i Y, koristi:

Izvorni.Move X, Y

Primjer 6.2 Isporuka pisma 1. Napravićemo jednostavnu aplikaciju za prebacivanje nepotrebnih dokumenata

(pisma) u nacrtanu kantu za otpad. Startamo novu aplikaciju. Postavimo okvir za crtež i jednu komandu na formu. Postavimo osobine:

Form1 : BackColor White BorderStyle 1-Fiksni okvir Caption Isporuka pisma Name frmIsporuka Command1 : Caption &Reset Name cmdReset Image1 : Name imgCan Picture kanta1.ico Stretch True Image2 : Name imgTrash Picture kanta2.ico Visible False

Poglavlje 6: Grafičke tehnike u Visual Basic-u

202

Image3 : Name imgBurn Picture kanta3.ico Visible False Image4 : DragIcon drag1pg.ico DragMode 1-Automatic Name imgPismo Picture posta.ico Stretch True

Forma izgleda kao na slici:

Slika sa imenom Pismo je kontrola koja će biti prevlačena i kanta (Image1 ) je

mjesto gdje će mo je prebaciti.. Dodatne slike nisu vidljive u startu i koriste se da promjene stanje kante ako je potrebno. Možemo pozvati te slike sa diska u toku rada programa , ali je brže da budu postavljene na formu i nevidljive dok ih program ne zatreba.

2. Kod je minimalan. Dogañaj na formi Form_DragDrop jednostavno

dozvoljava pomjeranje slike Pismo po formi. Private Sub Form_DragDrop(Source As Control, X As Single, Y As

Single) Source.Move X, Y End Sub

Image1

Image2

Image4

Image3

Poglavlje 6: Grafičke tehnike u Visual Basic-u

203

3. Dogañaj imgCan_DragDrop Mijenja sliku kante da izgleda kao da zgori kada

pismo prenesemo u nju. Private Sub imgCan_DragDrop(Index As Integer, Sour ce As Control, X As

Single, Y As Single) 'Pismo izgori kad do ñe u kantu imgCan.Picture = imgBurn.Picture Source.Visible = False End Sub 4. cmdReset_Click dogañaj vraća sve u orginalno stanje. Private Sub cmdReset_Click() 'Resetuje sve u po četno stanje imgCan.Picture = imgTrash.Picture imgPismo.Visible = True End Sub 5. Upamtite i startajte aplikaciju. 6.5 Tajmer (Timer) alati i kašnjenja

• Mnogo puta, posebno kada koristimo grafiku , potrebno nam je da ponovimo

neke operacije u odreñenim intervalima. Tajmer nam omogućava takvo ponavljanje. Tajmer alatka se nalazi na formi ali se ne vidi u toku izvoñenja programa.

• Tajmer alatka radi u pozadini , starta se samo kad se završi odreñeni interbval

vremena koji specificirate. . • Osobine tajmera:

Enabled Koristi se za postavljanje tajmera u uključeno i isključeno.

Interval Broj milisekundi za dogañaj startanja rutine tajmera.

• Tajmer dogañaj:

Poglavlje 6: Grafičke tehnike u Visual Basic-u

204

Tajmer ima samo jedan dogañaj:

Sub TimerIme_Timer() . . End Sub

U njega ubacujemo kod za koji želimo da se starta kad se jedan interval završi.

• Primjer Tajmera:

Da bi kompjuter svirao svake sekunde bez obzira šta se izvodi u programu dodajemo tajmer alatku (timPrimjer ) na formu i postavljamo Interval osobinu na 1000. Procedura tajmera je:

Sub timPrimjer_Timer() Beep End Sub

• U komplikovanijim primjerima možemo koristiti dva ili više tajmera. • Jednostavno kašnjenje:

Ako samo želimo da zakasnimo Visual Basic aplikaciju, koristimo Timer funkciju. To je slično tajmer alatu. Tajmer funkcija jednostavno vraća broj sekundi koji prože od postavljenog vremena. Za korištenje tajmer funkcije za kašnjenjeu sekundama koristi sledeći kod:

Dim VrijemeDanas As Single . . VrijemeDanas= Timer Do While Timer – VrijemeDanas < Kašnjenje Loop

Poglavlje 6: Grafičke tehnike u Visual Basic-u

205

6.6 Animacijske Tehnike • Jedna od jako zabavnih osobina Visual Basic programa je da kreira animiranu

grafiku. Pokazaćemo par jednostavnih grafičkih tehnika. • Jedna od najjednostavnijih animacijskih efekata je da mijenjamo slike izmedju

dvije predložene. Npr. Zamijenimo sliku crvenog sa zelenim svijetlom na semaforu. Ako to radimo brzo dobijemo animaciju. Okvir za slike (Picture) i okvir za crteže (image) se koriste za ove efekte.

• Jedan od načina je rotiranje kroz više slika da dobijemo dužu animaciju. Tada

koristimo 24 okvira u sekundi i dobijemo film. Tada moramo koristiti kontrolna polja da upamtimo okvire koje ćemo prikazati.

• Jedan od efekata je pomjeranje slike i pri tom mijenjanje slike u drugu. Objekt

se pomjera koristeći (Move) metodu. Imamo apsolutno i relativno pomjeranje koristeći osobine lijevo (Left) i gore (Top) osobine. Npr. Da pomjerimo sliku picPrimjer na koordinate (100, 100), koristimo:

picPrimjer.Move 100, 100

6.7 Brzi primjer: Jednostavna animacija 1. Startamo novu aplikaciju. Postavimo tri okvira za crtež na formu. Postavimo

sledeće osobine:

Image1 : Picture posta02.ico Visible False Image2 : Picture posta03.ico Visible False

Poglavlje 6: Grafičke tehnike u Visual Basic-u

206

Image3 : Picture posta02.ico Stretch True Postavi Image3 veći od ostalih.

2. Dodijeli kod Image3_Click proceduri. Private Sub Image3_Click() Static SlikaBr As Integer If SlikaBr = 0 Then Image3.Picture = Image2.Picture : SlikaBr = 1 Else Image3.Picture = Image1.Picture : SlikaBr = 0 End If End Sub Kada se klikne na sliku Image3 slika u Image3 se Mijenja zavisno o vrijednosti

statične varijable SlikaBr . 3. Startaj i upamti aplikaciju. Primjer 6.3: Animacija sa tajmer alatkom 1. U ovom primjeru ciklično prolazimo preko četiri različite slike koristeći tajmer

kontrolu. Startamo novu aplikaciju. Postavimo dva okvira za sliku , tajmer alatku i komandno dugme na formu. Postavimo sledeće osobine:

Image1 : Picture Slika1.ico Visible False Sada kopiramo i postavimo sliku 3 puta i dobijemo četiri elementa Image1

kao kontrolno polje. Postavimo osobinu Picture za ostala tri ilementa:

Poglavlje 6: Grafičke tehnike u Visual Basic-u

207

Image1(1) : Picture Slika02.ico Image1(2) : Picture Slika03.ico Image1(3) : Picture Slika04.ico Image2 : Picture Pocetna.ico Stretch True Command1 : Caption Start/Stop Timer1 : Enabled False Interval 200

Forma izgleda kao na slici:

2. Dodijeli kod Command1_Click proceduri. Private Sub Command1_Click() Timer1.Enabled = Not (Timer1.Enabled) End Sub

Poglavlje 6: Grafičke tehnike u Visual Basic-u

208

Tajmer je postavljen i omogućen. 3. Dodijeli kod tajmer Timer1_Timer proceduri. Private Sub Timer1_Timer() Static SlikaBr As Integer SlikaBr = SlikaBr + 1 If SlikaBr > 3 Then SlikaBr = 0 Image2.Picture = Image1(SlikaBr).Picture End Sub Ovaj kod mijenja sliku u Image2 kutiji, koristeći statičku varijablu SlikaBr da

vodi računa o tome koja slika je sledeća. 4. Upamti i startaj aplikaciju. . 6.8 Slučajni brojevi koji se koriste u igrama • Još jedna fina aplikacija Visual Basic-a je kreiranje igara. Možete kreirati igru

u kojoj igrate protiv kompjutera ili drugog igrača. • Za to su nam potrebni slučajni brojevi. Slučajni brojevi se koriste da podjelimo

karte, postavimo protivnički avion i sve što je potrebno u igrama.. • Postavljanje slučajnog generatora (Randomize ):

Da bi startali slučajni generator brojeva koristimo Seed vrijednost . Komandom Randomize :

Randomize Seed Ako koristite istu početnu varijablu ista će se sekvenca brojeva generisati. Ako želite različite brojeve kada startate program koristite Timer funkciju:

Randomize Timer Na ovaj način dobijate različitu sekvencu generisaqnih slučajnih brojeva.

• Rnd Funkcija:

Visual Basic funkcija Rnd vraća slučajni broj izmeñu 0 i 1. Da bi proizveli slučajne brojeve izmeñu Imin i Imax koristimo formulu:

Poglavlje 6: Grafičke tehnike u Visual Basic-u

209

I = Int((Imax - Imin + 1) * Rnd) + Imin

• Rnd Primjer: Da bi imitirali bacanje kocke koja ima 6 vrijednosti koristimo:

Kocka = Int(6 * Rnd) + 1

6.9 Slučajno sortiranje N cijelih brojeva • U mnogim igrama trebamo slučajno sortirati odreñeni broj cijelih brojeva. Npr.

Za skup karata trebamo sortirati cijele brojeve od 1 do 52.. • Slučajno sortiranje N cijelih brojeva je čest zadatak. Pogledajte proceduru.

Prolazni argumenti su N (najveći cijeli broj koji se sortira) i polje NArray , dimenzionisano od N elementa. Nakon poziva rutine N_Integers , N slučajno sortiranih brojeva se nalazi u NArray.

Private Sub N_Integers(N As Integer, Narray() As In teger) 'Slučajno sortira N cijelih brojeva i postavlja rezultat u Narray Dim i As Integer, J As Integer, T As Integer 'Postavimo sve elemente For i = 1 To N: Narray(I) = I: Next I 'J je broj preostalih cijelih brojeva For J = N to 2 Korak -1 i = Int(Rnd * J) + 1 T = Narray(J) Narray(J) = Narray(I) Narray(I) = T Next J End Sub

Primjer 6.4 Jednoruki Džek 1. Startaj novu aplikaciju. U ovom primjeru startaćemo mašinu za kockanje, tzv.

Jednoruki džek, koristeći slučajne brojeve i tajmere da prikaže tri slučajne slike. Iste slike na sva tri okvira je pobjeda. Postavimo dva okvira za slike , dvije labele i dva komandna dugmeta.

2. Postavi sledeće osobine:

Poglavlje 6: Grafičke tehnike u Visual Basic-u

210

Form1 : BorderStyle 1-Fiksni okvir Caption Jednoruki džek Name frmBandit Command1 : Caption &Zavrti Default True Name cmdzavrti Command2 : Caption Izlaz Name cmdExit Timer1 : Enabled False Interval 100 Name timZavrti Timer2 : Enabled False Interval 2000 Name timGotovo Label1 : Caption Ulog FontBold True FontItalic True FontSize 14 Label2 : Alignment 2-Center AutoSize True BorderStyle 1-Fiksni okvir Caption 100 FontBold True FontSize 14 Name lblPrazno Image1 : Name imgIzbor Picture earth.ico

Poglavlje 6: Grafičke tehnike u Visual Basic-u

211

Visible False Kopiraj taj okvir pet puta kreiraj kontrolno polje (imgIzbor ) sa četiri

elementa. Postavi Picture osobinu na sva tri okvira. Image1(1) : Picture meta.ico Image1(2) : Picture dinamit.ico Image1(3) : Picture ruža.ico Image1(3) : Picture lav.ico Image1(3) : Picture vaga.ico Image2 : BorderStyle 1-Fiksni okvir Name imgJednoruki Stretch True

Kopiraj okvir za sliku dva puta , kreiraj kontrolno polje od tri elementa

(Image2 ).

Poglavlje 6: Grafičke tehnike u Visual Basic-u

212

Kad završite forma izgleda kao na slici:

Mi ćemo slučajno puniti tri velika okvira za sliku. Jedan tajmer (timZavrti ) flešuje slike u ova tri okvira za slike. Tajmer (timZavrsi ) tajmira proces.

3. Unijećemo u kod osnovne deklaracije general declarations . Pobjeda je

ostvareni poeni. Option Explicit Dim Pobjeda As Integer 4. dodati kod pozivu forme Form_Load proceduri. Private Sub Form_Load() Randomize Timer Pobjeda = Val(lblBank.Caption) End Sub

Poglavlje 6: Grafičke tehnike u Visual Basic-u

213

5. Dodijeli kod proceduri cmdExit_Click . Private Sub cmdExit_Click() MsgBox "Završili ste sa" + Str(Pobjeda) + " poena. ", vbOKOnly, "Igra je

završena" End End Sub 6. Dodijeli kod proceduri cmdZavrti_Click . Private Sub cmdZavrti_Click() If Pobjeda = 0 Then MsgBox "Nemate više keša!", vbOKOnly, "Igra završ ena" End End If Pobjeda = Pobjeda - 1 lblBank.Caption = Str(Pobjeda) timZavrti.Enabled = True timZavrsi.Enabled = True End Sub Provjerava vam se keš i završava ako ga nemate. 7. Dodijeli kod proceduri timZavrti_Timer . Private Sub timZavrti_Timer() imgJednoruki(0).Picture = imgIzbor(Int(Rnd * 4)).Pi cture imgJednoruki(1).Picture = imgIzbor(Int(Rnd * 4)).Pi cture imgJednoruki(2).Picture = imgIzbor(Int(Rnd * 4)).Pi cture End Sub Svake 0.1 sekunde tri vidljiva okvira za slike se pune slučajnim slikama.

Poglavlje 6: Grafičke tehnike u Visual Basic-u

214

I kod za timZavrsi_Timer proceduru. Ovaj dogañaj se starta svakih 2 sekunde. Private Sub timZavrsi_Timer() Dim P0 As Integer, P1 As Integer, P2 As Integer Dim Pobjedili As Integer Const BRSLIKA = 3 timZavrti.Enabled = False timZavrsi.Enabled = False P0 = Int(Rnd * 4) P1 = Int(Rnd * 4) P2 = Int(Rnd * 4) imgJednoruki(0).Picture = imgIzbor(P0).Picture imgJednoruki(1).Picture = imgIzbor(P1).Picture imgJednoruki(2).Picture = imgIzbor(P2).Picture If P0 = BRSLIKA Then Pobjedili = 1 If P1 = BRSLIKA Then Pobjedili = 3 If P2 = BRSLIKA Then Pobjedili = 10 End If End If ElseIf P0 = P1 Then Pobjedili = 2 If P1 = P2 Then Pobjedili = 4 End If Pobjeda = Pobjeda + Pobjedili lblBank.Caption = Str(Pobjeda) End Sub Prvo se postave tajmeri na nulu. Završne slike se pojave na svojim

pozicijama. 8. Upamtite i startajte aplikaciju.

Poglavlje 7: Rad sa bazama podataka

215

7. Rad sa bazama podataka 7.1 Uvod u baze podataka • U prošlim poglavljima vidjeli smo svu snagu Visual Basic alata. U ovom

poglavlju proučićemo izuzetan alat za rad sa bayama podataka (Data Control). Korištenjem ovog alata zajedno sa ostalim alatima ‘data-aware’ , dozvoljava nam pristup i održavanje baza podataka.

• Glavne promjene u Visual Basic-u, od verzije 6.0 su alati za rad sa bazama

podataka. Jedan od jako korišteni alata je baziran na ActiveX Data Object (ADO) tehnologiji. Taj alat potpuno zamjenjuje stari alat za rad sa bazama podataka koji se zove DAO (Data Access Object) . Ovdje ćemo razraditi ADO alate.

7.2 Struktura baze podataka i terminologija • Baza podataka (database) je kolekcija informacija . Ta kolekcija se

memoriše u vidu tabela (tables) , odnosno matrica. • Redovi (rows ) u bazi podataka se koriste da opišu zajedničke stavke. Redovi

za nas znače da su to zapisi baze poataka (records) . • Kolone (columns) u bazi pdataka omogućavaju karakteristike zapisa. Te

karakteristike se zovu polja baze podataka (fields) . Svako polje sadrži jedan specifični dio informacije. U definisanju polja baze podataka, odreñujemo tip polja, dužinu i opisujemo ostale atribute.

Poglavlje 7: Rad sa bazama podatakama

216

• A sada primjer jedne jednostavne baze podataka:

U takvoj tabeli baze podataka , svaki zapis predstavlja jedan individualan podatak. Polja opisi svakog individualnog podatka uključuju identifikacioni broj (ID Br), Ime, Datum Roñenja, Visina, and Težina.

• Mnoge baze podataka koriste indekse da bi dozvolili brži pristup informaciji u

bazi podataka. Indeksi su sortirane liste koje pokazuju na odgovarajuće redove tabele. U prethodnom primjeru polje ID Br se koristi za indeks.

• Baza podataka koristi jednu tabelu koja se zove (flat database) . Mnoge baze

podataka su sastavljene od puno tabela. Kada koristimo više tabela unutar baze podataka , te tabele moraju imati zajednička polja da omoguće krosreference u tabelama. Veza jedne tabele sa drugom se zove relacija. Takva grupa tabela se zove relaciona baza podataka.

• U našem prvom primjeru koristićemo jednostavnu bazu podataka koja dolazi

uz Visual Basic. Ova baza podataka (BIBLIO.MDB ) se nalazi u direktoriju gdje se instalira Visual Basic. To je baza knjiga o računarima. Da vidimo sada relacionu strukturu. BIBLIO.MDB baza podataka je sastavljena od četiri tabele:

ID Br

1

2

3

Milan Latinović Sanja Latinović Brana Latinović

Ime Datum Ro ñenja

01/04/58

Težina Visina

Polje

Zapis

Tabela

11/22/61

02/04/59

72

65

68

170

125

130

Poglavlje 7: Rad sa bazama podataka

217

Autori Tabela (6246 Zapisa, 3 polja)

Izdavači Tabela (727 Zapisa, 10 Polja)

AutoriiKnjige Tabela (16056 Zapisa, 2 Polja)

Naslovi Tabela (8569 Zapisa, 8 polja)

Au_ID

IzdID

ISBN

Naslov

Autor

Ime

Au_ID

God Izd.

God. Izdav.

Izd. Ku ća

ISBN

Faks

IzdID

komentar

komentari

Poglavlje 7: Rad sa bazama podatakama

218

Tabela Autori sadrži identifikacioni broj autora, ime autora i datum roñenja. Tabela Izdavači sadrži identifikacioni broj, ime izdavača i telefonski broj. Tabela AutoriiKnjige vezuje ISBN (univerzalni broj dodijeljen knjizi) sa identifikacionim brojem autora. i konačno tabela Naslovi uključuje naziv knjige, ISBN i identifikacioni broj izdavača. Svaka tabela sadrži dva tipa informacija: izvorne podatke i relacione podatke. Izvorni podaci su aktuelne informacije , kao što su naziv knjige i ime autora. Relacioni podaci su reference na podatke u ostalim tabelamakao što su Au_ID and IzdID. Prva kolona u tabelama se najčešće uzima kao indeksno polje. U tabeli Naslovi ISBN polje je indeksno.

• Koristeći relacione podatke u sve četiri tabele moćićemo da kompletno

obradimo bilo koju knjigu u bazi podataka. Pogledajmo primjer:

Knjiga u tabeli naslovi sa nazivom “Korak-by-Korak dBase IV,” ima ISBN broj 0-0280095-2-5 i IzdID je 52. Ako uzmemo IzdID u tabeli Izdavači vidimo da je izdavač knjige McGraw-Hill. Koristeći ISBN u tabeli AutorNaslova nañemo u identifikaciji autora (Au_ID) da je 171, koja nam kaže da je autor knjige Toby Wraye.

• Možemo formirati alternativnu tabelu iz tabela u bazi podataka. Takve virtuelne tabele ili logički pogledi na bazu možemo kreirati preko upita (query). Jedan primjer je da koristeći bazu podataka BIBLIO.MDB uz pomoć upita tražimo formiranje tabele svih autora i knjiga objavljenih nakon 1992.

• Sistem za održavanje baza podataka (database management system

(DBMS)) vodi računa o svim informacijama u bazi podataka. On kreira i održava baze podataka. Primjer komercijalnih DBMS programa su Microsoft

Poglavlje 7: Rad sa bazama podataka

219

Access, Microsoft FoxPro, Borland Paradox, Borland dBase i Claris FileMaker. Visual Basic dijeli isti DBMS kao i ACCESS. Taj DBMS se zove (Jet engine). U ovom poglavlju vidjet ćemo kako Visual Basic pristupa podacima, ispisuje podatke i izvršava neke elementarne operacije sa podacima.

7.3 ADO kontrola podataka

• ADO (ActiveX Data Object) kontrola podataka je osnovni interfejs izmeñu

Visual Basic aplikacije i baze podataka. Možemo ga koristiti sa minumumom koda. Takoñe može biti centralni dio kompleksne baze podataka. Ako ikone nema u Visual Basic alatkama odaberite Project iz glavnog menija , zatim kliknite na Components . Izaberite Microsoft ADO Data Control i kliknite na OK. Na taj način dodajete kontrolu alatima.

• Kao što smo rekli u uvodu prethodne verzije Visual Basic-a koriste takozvanu

DAO kontrolu koja ima sledeću ikonu:

Ta kontrola je dobra za male baze podataka. • Kontrola podataka izvršava sledeće zadatke:

1. Povezuje se na bazu podataka. 2. Otvara odreñenu tabelu iz baze. 3. Kreira virtuelnu tabelu bat+ziranu na upitu baze podataka 4. Prenosi polja baze podtaka u ostale Visual Basic alate, da bi se

mogli ispisati ili prikazati na ekranu. 5. Dodaje novi zapis ili obnavlja bazu podataka. 6. Iskače kad se pojavi greška u pristupu podacima. 7. Zatvara bazu podataka.

Poglavlje 7: Rad sa bazama podatakama

220

• Osobine kontrole podataka:

Align Odreñuje gdje će se podaci ispisati. Caption Ispisuje naziv uz kontrolu podataka. ConnectionString Sadrži informaciju potrebnu da ostvari vezu

sa bazom podataka. LockType Postavlja tip mehanizma zaključavanja

zapisa tokom unosa podataka. Recordset Skup zapisa definisanih sobinama kontrola

podataka ConnectionString i RecordSource . Samo u toku starta programa.

RecordSource Odreñuje tabelu ili virtuelnu tabelu koja je dodata kao izvor podataka (može biti iz ACCESSA).

• Potrebna nam je kontrola podataka za svaku tabelu u bazi podataka ili

virtuelnu tabelu da bi joj pristupili. Jednom redu tabele pristupamo trenutno. On se zove tekući zapis (current record) .

• Kad je kontrola podataka postavljena na formu ona ima osobinu Caption i četiri dugmeta , kao strelice za kretanje po podacima:

Strelica vrši navigaciju kroz redove tabele (zapise). Dugmad se koriste za navigaciju, za kraj tabele , početak ili korak dalje ili korak nazad u tabeli.

7.4 Veze podataka • Kad postavimo kontrolu podataka na formu postavimo poslije

ConnectionString osobinu. ADO kontrola podataka se može povezati sa različitim tipovima baza podataka. Postoje tri načina za konekciju sa bazama podataka: korištenjem linka sa podacima, korištenjem ODBC izvora podataka ili konekcijskog stringa. U ovoj knjizi ćemo obraditi samo vezu sa Microsoft Access bazom podataka koristeći link podataka (data link) . Link podataka je fajl sa UDL ekstenzijom koja sadrži informaciju o tipu baze podataka.

Prvi zapis Zadni zapis

Sledeći zapis Prethodni zapis

Poglavlje 7: Rad sa bazama podataka

221

• Ako baza podataka nema link podataka potrebno ga je kreirati. Za ovaj posao uzećemo BIBLIO.MDB bazu podataka iz prethodnog primjera:

1. Otvorimo Windows Explorer . 2. Otvorimo direktorij gdje ćemo upamtiti link fajl podataka. 3. Desnim kliknuti na miša izabremo New. Iz liste fajlova izaberemo

Microsoft Data Link . 4. Preimenujemo fajl u BIBLIO.UDL 5. Desnim klikom kliknuti na novi UDL fajl i izabaremo osobine (Properties) . 6. Izaberemo Provider tab i Microsoft Jet 3.51 OLE DB Provider (za

Access bazu podataka). 7. Kliknemo na Next dugme u Connection tabu. 8. Kliknemo na the ellipsis and use the Select Access Database dijalošku

kutiju da izaberemo BIBLIO.MDB iz Visual Basic glavnog direktorija. Kliknemo na Open .

9. Kliknemo na Test Connection . Tada kliknemo na OK. UDL fajl se kreira i može se pridružiti koristeći ConnectionString .

• Ako je link ka podacima kreiran i postoji za vašu bazu podataka, Kliknemo da

dobijemo ConnectionString osobinu. Izaberemo Use Data Link File . Tada, kliknemo na Browse i nañemo fajl. Kliknemo na Open . Link ka podacima je sada ispravno dodjeljen. Kliknemo na OK.

7.5 Dodijeljivanje tabele • Jednom kada je ADO kontrola podataka povezana sa bazom podataka,

potrebno je da Dodijelimo tabele datoj kontroli. Pozovi svaku kontrolu podataka i dodijeli joj jednu tabelu, bilo da je direktna ili virtualna poput upita. Dodjeljivanje se vrši preko RecordSource osobine.

• Tablele se dodjeljuju pravljenjem upita u bazi podataka. Jezik za pravljenje

upita je SQL (strukturni jezik upita). SQL je sličan engleskom jeziku da bi nam olakšao postavljanje upita u bazi podataka. Odgovori baze podataka čine novu tabelu od zapisa i polja koji zadovoljavaju dati kriterij.

• Tabela se dodjeljuje postavljanjem validnog SQL izraza u RecordSource

osobinu odgovarajuće kontrole podataka. Ovdje nećemo učiti SQL . Postoje mnogi tekstovi o tome. Samo ćemo vidjeti kako se koristi SQL da postavi kontrolnu tačku podataka u direknoj tabeli baze podataka.

Poglavlje 7: Rad sa bazama podatakama

222

• Klikni na na RecordSource u njegove osobine. Property Pages dijaloška kutija će se pojaviti. U dijkalogu koji je markiran kao Command Text (SQL), ukucaj: SELECT * FROM ImeTabele Ova komanda će izabrati sva polja iz tabele sa imenom ImeTabele u odabranoj bazi podataka. Klikni na OK.

• Postavljanje Recordset osobine je vrlo važno. • I konačno relacije izmeñu kontrole podataka (data control) i njegova dve

primarne osobine (ConnectionString i RecordSource ) je: 7.6 Vezani alati podataka • Mnogi od Visual Basic alata se koriste da povežu objekte, ili kao kontrole, ili za

vezu sa bazom podataka. Ako koristite kontrolu za povezivanje morate na formi imati jednu ili više kontrola podataka.

• Neki alati koji se mogu povezati sa bazom podataka:

Label Koristi se samo za prikaz podataka iz baze. Text Box Koristi se da omogući upis/ispis specifičnog

polja podataka u bazi . Check Box Koristi se da omogući upis/ispis ka Boolean

polju . Combo Box Koristi se da omogući upis/ispis ka tekst

podacima. List Box Koristi se da omogući upis/ispis tekst

podacima.

ConnectionString

RecordSource

Baza podataka Tabela baze

Tekući zapis

ADO Data kontrola

Poglavlje 7: Rad sa bazama podataka

223

Picture Box Koristi se za prikaz slike iz bitmap, icon, ili metafile na formi. Koristi se da omogući upis/ispis slike u polju podataka jedne baze.

Image Box Koristi se za prikaz slike iz bitmap, icon, ili

metafile na formi. Koristi se da omogući upis/ispis slike u polju podataka jedne baze.

• Postoje takoñe tri podesive alatke za pristup podacima DataCombo (bolje

nego vezana kombo alatka), DataList (bolje nego vezana list komanda) i DataGrid alatka o kojoj ćemo posebno govoriti.

• Osobine veznih alatki:

DataChanged pokazuje nam kada se ispisana vrijednost Mijenja u vezanoj kontroli podataka.

DataField Odreñuje ime polja u tabeli na kome se

nalazi kontrola podataka. DataSource Odreñuje koja kontrola podataka je povezana

za podatke. Ako su podaci u kontroli podataka promijenjeni i korisnik promijeni fokus na drugu kontrolu , baza podataka automatski izmjeni stare podatke sa novim.

• Da bi koristili vezane kontrole jednostavno, slijedite sledeće korake u

postavljanju kontrole na formu:

1. Crtaj vezanu kontrolu na istoj formi gdje je i kontrola podataka za koju ćemo se vezati postavljena.

2. Postavi DataSource osobinu. Klikni na padajuću strelicu da

prelistaš kontrole podataka na formi.

3. postavi DataField osobinu. Klikni na padajuću strelicu da prelistaš polja koja su dodjeljena preko kontrole podataka.

4. Postavi ostale osobine ako se zahtjeva.

Sledeći ove korake nećete napraviti potencijalnu grešku u pristupu podacima.

• Relacija izmeñu vezane kontrole podataka i baze su:

Poglavlje 7: Rad sa bazama podatakama

224

Primjer 7.1 Povezivanje Baze podataka Knjiga 1. Startaj novu aplikaciju. Napravićemo formu gdje možemo prolaziti kroz bazu

podataka knjiga, provjeriti naslove i ISBN vrijednosti. Postavi ADO kontrolu podataka, dve labele i dva tekst okvira na formu.

2. Kreirajte link na BIBLIO.MDB bazi podataka koristeći korake objašnjene tokom

objašnjenja povezivanja podataka. 3. Postavi odgovarajuće osobine objekta na formi.

Form1: BorderStyle 1-Fiksni okvir Caption Baza podataka Knjiga Name frmKnjige

Adodc1:

Caption naslovi Knjiga ConnectionString BIBLIO.UDL RecordSource SELECT * FROM Naslovi Name dtaNaslovi

Label1:

Caption Naslov Label2:

Caption ISBN

Text1: DataSource dtaNaslovi (izaberi) DataField Naslovi (izaberi) Locked True

DataField

Tabela Baze pod. ADO Kontrola podataka

DataSource

Vezana kontrola podataka (polje u tekućem zapisu)

Poglavlje 7: Rad sa bazama podataka

225

MultiLine True Name txtTitle Text [Prazno]

Text2: DataSource dtaNaslovi (izaberi) DataField ISBN (izaberi) Locked True Name txtISBN Text [Prazno]

Kada završite forma će izgledati kao na slici:

4. Upamti aplikacijui potom je startaj. Proñi kroz knjige da vidiš da li sve funkcioniše.

7.7 Kreiranje virtuelne tabele • Ako želimo da izvučemo specifične podatke iz više tabela u jednoj bazi

podataka da bi dobili informaciju koja nam treba kreiramo virtuelnu tabelu. U primjeru 7-1, Naslov i ISBN knjige nije idovoljna informacija, želimo i Autora, ali te informacije nemamo u tabeli Naslovi . U tom slučaju moramo kreirati virtuelnu tabelu koja će preuzeti informacije iz više tabela.

• Treba nam forma SQL za taj primjer da ga ubacimo u RecordSource

osobinu.

Poglavlje 7: Rad sa bazama podatakama

226

7.8 Jednostavan primjer: Formiranje virtuelne tabe le 1. Koristimo rezultate Primjera 7-1 da dodamo Autor polje u formu. Zamijenimo

RecordSource osobinu u dtaNaslovi kontrolu sledećim SQL komandama:

SELECT Autor,Naslovi.ISBN,Naslov FROM Autori,[Naslov Autor],Naslovi WHERE Autori.Au_ID=[Naslov Autor].Au_ID AND Naslovi.ISBN=[Naslov Autor].ISBN ORDER BY Autor

Moramo sve upisati kao jednu liniju u komandnoj liniji (SQL) koju dobijemo kad

kliknemo na RecordSource osobinu. Provjerite da li ste sigurno sve ispravno unijeli.

Da vidimo šta rade ove komande: One biraju Autor, Naslovi.ISBN i Naslov polja iz Autora, NaslovAutori i Naslovi tabela, gdje su Au_ID i ISBN polja ista. Nakon toga se sortiraju u virtuelnu tabelu koristeći autore kao indeks.

2. Dodaj labelu i tekst okvir na formu za ispis imena autora. Postaviti kontrolne

osobine.

Label3: Caption Autor

Text1:

DataSource dtaNaslovi (izaberi) DataField Autor (izaberi) Locked True Name txtAutor Text [Prazno]

Kada završimo forma će izgledati kao na slici:

Poglavlje 7: Rad sa bazama podataka

227

3. Upamti i startaj aplikaciju. Imena autora sada imaju i naslov knjige koja

pripada autoru , kao i ISBN te knjige Bez i jednog koda dobili smo formu koja upisuje podatke iz baze podataka i to ispisuje sortirano po imenu autora.

7.9 Nalaženje specifi čnih zapisa • Da bi mogli da se pomijeramo po zapisima u bazi neophodno je da unesemo i

kod u Visual Basic-u. • Postoje četiri načina za pomijeranje po bazi podataka. Ovi metodi repliciraju

mogućnost četiri strelice na tastaturi da budu komande za pomjeranje podataka na formi:

MoveFirst Pomijera se na prvi zapis u tabeli. MoveLast Pomijera se na zadnji zapis u tabeli. MoveNext Pomijera se na sledeći zapis u tabeli. MovePrevious Pomijera se na prethodni zapis u tabeli.

• Ako se pomijeramo programski po bazi podataka , trebamo testirati bazu

podataka programski , tj. Provjeravati BOF (početak fajla) i EOF (kraj fajla) osobine. BOF osobina je True kada tekući zapis pozicioniramo na početak fajla prije svih podataka. EOF osobina je True kada je tekuči zapis pozicioniran nakon svih podataka u fajlu. Ako su oba True ne postoje podaci u tabeli.

• Te osobine i programske kontrolne metode, operišu preko Recordset osobina

na kontroli podataka. Pomijeranje na prvi zapis u tabeli dodatoj na kontrolu podataka dtaPrimjer tj. :

dtaPrimjer.Recordset.MoveFirst

• Metod za pretraživanje po bazi podataka je:

Find pronalaženje zapisa koji ima odgovarajući kriterij.

Ovaj metod takoñe operiše sa Recordset osobinom i ima tri argumenta. Korištenje Find sa kontrolom podataka dtaPrimjer :

dtaPrimjer.Recordset.Find Kriterij,Brojpreskočenih,Pravactraženja

Poglavlje 7: Rad sa bazama podatakama

228

• Kriterij za pretraživanjeje string kao WHERE komanda u SQL upitu. Kriterija opisuje koji zapis želimo vidjeti. Npr. Koristeći bazu podataka Knjige da vidimo zapise koji počinju sa S koristimo:

Criteria = “Naslov >= ‘S’”

Koristimo sledeće kriterije: jednako (=), veće od (>), i manje od (<).

• NumberSkipped argument nam kaže koliko zapisa ćemo preskočiti prije nego što startamo komandu za pronalaženje zapisa koji zadovoljavaju odreñeni kriterij (Find ). Ako želimo preskočiti samo tekući zapis postavimo NumberSkipped na 1.

• SearchDirection argument ima dvije moguće vrijednosti: adSearchForward ili adSearchBackward . Zajedno sa Move metodom, SearchDirection argumenti koriste se da omoguće različite vrste pretraživanja (pretraživanje od vrha, pretraživanje od dna itd.)

• Ako pretraživanje ne nañe zapis koji zadovoljava kriterij vraća nam karakter EOF (kraj fajla) ili BOF (početak fajla)

Poglavlje 7: Rad sa bazama podataka

229

Primjer 7.2 Pretraživanje baze Knjiga 1. Proširujemo aplikaciju baza podataka Knjiga dodajući kriterij pretraživanje po

imenima autora. Koristićemo pristup da nam pritiskom na jedno dugme prikazaće nam autore čije prezime počinje sa datim slovom.

2. Potrebna su nam dugmad u redu od ‘A’ do ‘Z’ to . Crtanje svakog posebno bilo

bi jako dugo pa ćemo prepustiti Visual Basic-u da to radi u Form_Load proceduri. Kreiramo jedno dugme ( ‘A’), napravimo kontrolno polje i dinamički kreiramo 25 novih kontrola u polju ubacujući svaki put drugo slovo.

Dodaćemo jedno komandno dugme prethodnoj formi. Nazvaćemo je

cmdPismo i daćemo joj osobinu Caption na A. Postavimo osobinu Index na 0 da bi napravili kontrolno polje. Na formi će to izgledati kao na slici:

3. Dodajemo kod Form_Load proceduri. Ovaj kod dodaje kontrolno polje i crta 25 komandnih dugmadi sa novim slovom.

Private Sub Form_Load() Dim i As Integer ‘Veli čina dugmadi cmdPismo(0).Width = (frmKnjige.ScaleWidth - 2* cmd Pismo(0).Left) / 26 For i = 1 To 25 Load cmdPismo(I) ' Kreiraj kontrolno dugme 'Pozicioniraj ga cmdPismo(I).Left = cmdPismo(I - 1).Left + cmdPismo (0).Width 'postavi osobine caption i visable cmdPismo(I).Caption = Chr(vbKeyA + I) cmdPismo(I).Visible = True Next I

Poglavlje 7: Rad sa bazama podatakama

230

End Sub Startajte aplikaciju . Završena forma izgleda kao na slici:

Vidimo kako je kod poredao komandnu dugmad na formu.. 4. Dodajmo kod komadni cmdPismo_Click . U ovoj proceduri koristimo kriterij

za pretragu po imenu autora koje počinje sa izabranim slovom. Ako komanda za pretraživanje ne nañe zapis prikazaće se ono što je prethodno nañeno.

Private Sub cmdPismo_Click(Index As Integer) Dim BookMark1 As Variant 'markiraj prostor u slu čaju da ne na ñemo zapis BookMark1 = dtaTitles.Recordset.Bookmark 'Postavi se na po četak tabele dtaNasloviTitles.Recordset.MoveFirst dtaNaslovi.Recordset.Find "Autor >= '" + cmdPismo( Index).Caption + "'",

0, adSearchForward If dtaNaslovi.Recordset.EOF = True Then dtaNaslovi.Recordset.Bookmark = BookMark1 End If txtAutor.SetFocus End Sub Pogledajmo još malo ovu komandu za pretraživanje. Pomjerimo se na vrh

baze sa MoveFirst . Tada komandom Find uz dodatak izabranog slova u zagradi pretražujemo zapise da nañemo autore čiji kriterij to zadovoljava Ii ako nije postavimo Bookmark na tu vrijednost.

Poglavlje 7: Rad sa bazama podataka

231

5. Upamtite aplikaciju. Testirajte je za više kriterija. 7.10 Menadžer podataka • Od ovog trenutka mi znamo kako da koristimo kontrole podataka i ostale

alatke Visual Basic-a koje rade sa podacima. Snaga Visual Basic-a leži u mogućnosti da manipuliše zapisima u kodu. Takav zadatak odreñuje vrijednosti pojedinih polja, dodaje zapise, briše zapise i pomjera od zapisa do zapisa vrlo jednostavno i brzo. To nam omogućava da jednostavno sagradimo kompletan sistem za održavanje baze podataka (DBMS).

• I dalje koristimo primjer BIBLIO.MDB. Kreirajte vlastitu bazu podataka.

Visual Data Manager je dio Visual Basic Add-In alata koji dozvoljava kreiranje i održavanje baza podataka.

• Koristeći Data Manager slijedite sledeće korake:

1. Izaberi Visual Data Manager iz Visual Basic Add-In menija (ako vas pita da dodate SYSTEM.MDA u .INI fajl - odgovorite No.)

2. Izaberite Open Database iz Data Manager File menija. 3. Izaberite tip baze podataka i ime koje želite da provjerite.

Kada otvorite bazu podataka , možete uraditi razne stvari. Možete jednostavno pogledati različite tabele. Možete pretražiti pojedinačne zapise. Dodajte SQL upit. Možete dodati ili izbrisati zapise. Data Manager je sama DBMS. Možete koristiti Data Manager da vidite BIBLIO.MDB bazu podataka.

• Da kreirate novu bazu podataka koristite sledeće korake:

1. Izaberite Visual Data Manager sa Visual Basic Add-In menija 2. Izaberite New iz Data Manager File menija. Izaberite tip baza

podataka (Microsoft Access, Version 7.0), tada izaberite direktorij i unesite ime baze podataka. Klikni na OK.

3. Otvoriće se prozor baze podataka. Desnim klikom klikni na prozor i izaberi New Table . U prostor Name unesi ime tabele. Definiši polja tabele i klikni na Add Field , tada unesite ime polja, odaberi tip podataka i odredi veličinu polja. Jednom kad definišete polje kliknite na OK dugme da dodate polje. Kada su sva polja definisana kliknite na Build the Table dugme da upamtite tabelu.

Poglavlje 7: Rad sa bazama podatakama

232

Primjer 7.3 Telefomski imenik kreiranje baze 1. Sa ovim primjerom počinjete razvijati jednostavnu bazu Telefonski Imenik . U

tom imeniku , vodićemo računa o imenima i telefonskim brojevima. Neophodno je da unosimo, dodajemo, mijenjamo i brišemo imena i brojeve u imeniku. Takoñe moramo da pretražujemo i po imenu i po broju telefona. Prvi korak nam je da ustanovimo strukturu baze podataka koju ćemo koristiti. Imenik će imati jednu tabelu sa tri polja: Ime, Opis , and Telefon . Ime sadrži ime i prezime osobe čiji je telefon, Opsi sadrži neku frazu ili bilo šta što nas asocira na dotičnu osobu i telefon te osobe.

2. Startamo Data Manager . Koristimo prethodno definisane korake da kreiramo

novu bazu (to je Microsoft Access, Version 7.0 baza). koristimo PhoneList kao Ime baze podataka. Definišemo 3 polja. Svako je tipa Text . Dodijelimo veličinu 40 za Name i Description polja i veličinu 15 za Phone polje. Kad definišemo sva polja ekran će izgledati kao na slici:

Poglavlje 7: Rad sa bazama podataka

233

Kada izdefinišemo polja tabele , kliknemo na Build the Table da upamtimo novu tabeli. Nakon toga se vratimo u prozor za tabele baze podataka.

3. Unesimo i nešto podataka u bazu. Iz prozora za rad sa tabelama baze

podataka (Database Tables ) Kliknite desnim klikom na PhoneList tabelu i odaberite Open . Tada ćete dobiti sledeći prozor:

Od ove tačke dodajemo nekoliko zapisa u bazu. Koraci za svaki zapis su:

(1) Klikni na Add za dodavanje zapisa

(2) Popuni sva tri polja i

(3) Klikni na Update da upamtiš sadržaj.

Takoñe možete izbrisati (Delete) zapis i pronaći ga (Find) ako vam

treba. Možete se pomijerati po zapisima sa klizačem. Kada završite sa unosom zapisa kliknite na Close da upamtite posao. Izaberite Exit sa Data Manager File menija. Vaša baza podataka će se kreirati.

7.11 Održavanje baze podataka • Data Manager je program u okviru Visual Basic-a namjenjen za održavanje

podataka u bazi podataka. Njegov interfejs nije tako jednostavan i fin kao ostali u VB-u. On nije jedini softver za održavanje baza podataka (database

Poglavlje 7: Rad sa bazama podatakama

234

management system (DBMS)). Sledeći korak u razvoju alata za baze podataka je razvoj vlastitog DBMS.

• Kreiraćemo jednostavan DBMS. Tako ćemo moći da pregledamo zapise u

postojećoj bazi. Na taj način mijenjamo zapise, dodajemo zapise i brišemo zapise. Takoñe napredni zadaci su dodavanje tabela i polja bazi podataka i kreiranje nove baze podataka koristeći Visual Basic.

• Da kreiramo vlastiti DBMS, potrebno nam je da definišemo neke kontrolne

metode koje asociraju na kontrolu podataka i osobinu Recordset . Ove metode su:

AddNew Dodaje novi zapis u tabelu. Sva polja su

postavljena na Null i postaju tekući zapis. Delete Tekući zapis se briše iz tabele. Nakon ove

komande moramo koristiti neku od Move metoda da se pomjerimo sa tekućeg zapisa jer ga više nema nakon Delete .

Update memoriše sve tekuće izmjene.

• Da bi mijenjali postojeći zapis, jednostavno prikažite zapis i uradite željene

promjene. LockType osobina se mora postaviti na adLockPessimistic (zaključava svaki zapis koji se mijenja i to dok se ne promjeni). Kada se pomjerimo sa zapisa sa navigacijskim dugmetom ili kroz neke druge akcije Visual Basic automatski obnavlja zapis. Ako želite ili imate potrebe koristite Update metod da forsirate obnavljanje (update) (koristite LockType = asLockOptimistic ). Za kontrolu podataka dtaPrimjer , sintaksa je:

dtaPrimjer.Recordset.Update

• Za dodavanje zapisa u bazu podataka koristite AddNew metodu. Sintaksa

kontrole je sledeća:

dtaPrimjer.Recordset.AddNew

Ova komanda prazni sve kontrole i pomjera tekući zapis na kraj baze podataka. Nakon toga unosite nove vrijednosti. Kada pomjerite na drugi zapis , automatski se izvrši promjena u bazi podataka. Jedini način da izmjenimo bazu podataka je korištenjem Update metode.

Poglavlje 7: Rad sa bazama podataka

235

Nakon dodavanja zapisa u bazu podataka možete uzeti i Refresh osobinu da ostvarite promjenu u bazi i novo sortiranje podataka. Format je:

dtaPrimjer.Refresh

• Brisanje zapisa iz baze podataka se vrši komandom delete . Sintaksa je:

dtaPrimjer.Recordset.Delete

Jednom kad startate Delete, morate se pomjeriti sa tekućeg zapisa koji više ne postoji (koristeći ‘Move’ metodu). To je teško ako izbrišete zadnji zapis ( EOF). Ako je EOF true, morate pomjeriti na početak baze podataka (MoveFirst ). Morate biti sigurni da je validan zapis (provjeriti BOF osobinu). Primjer 6-4 nam to prikazuje.

Primjer 7.4 Telefonski Imenik – Održavanje baze podat aka 1. Prije nego što nastavimo napravićemo kopiju telefonskog imenika u Windows

Explorer. Kreirajmo link na bazu podataka. . 2. Pozovimo zadnju bazu podataka koju smo radili (Primjer 8-2 ).

Modifikovaćemo tu bazu da sadrži telefonske brojeve DBMS. Upamtićemo formu i projekat sa različitim imenima. Dodaćemo 3 komandna dugmeta u gornji ugao forme. Modifikovaćemo sledeće osobine za svaku alatku pojedinačno.

frmKnjige (to je staro ime):

Caption Lista TelefonaPhone List Name frmTelefon

dtaTitles (to je staro ime):

Caption Brojevi telefona ConnectionString [veza sa bazom podataka telefona] (selektujte) RecordSource SELECT * FROM ListaTel ORDER BY Ime

(sortirano po imenu) Name dtaTelefon LockType adLockOptimistic

Label1:

Caption Opis Label2:

Caption Telefon

Poglavlje 7: Rad sa bazama podatakama

236

Label3:

Caption Ime txtAutor (ovo je staro ime):

DataSource dtaTelefon (selektuj) DataField Name (selektuj) Locked False Name txtIme MaxLength 40 TabIndex 1

txtISBN (this is the old name):

DataSource dtaTelefon (selektuj) DataField Telefon (selektuj) Locked False Name txtTelefon MaxLength 15 TabIndex 3

txtTNaslov (staro ime):

DataSource dtaTelefon (selektuj) DataField Description (selektuj) Locked False Name txtOpis MaxLength 40 TabIndex 2

Command1: Caption &Dodaj Name cmdDodaj

Command2:

Caption &Pamti Enabled False Name cmdPamti

Command3:

Caption &Briši Name cmdBriši

Forma će izgledati kao na slici:

Poglavlje 7: Rad sa bazama podataka

237

Sada možemo startati aplikaciju i prolaziti kroz nju koristeći kontrolu

purdataka. 3. U Form_Load , zamjenite frmKnjige sa frmTelefon . . 4. U cmdPismo_Click proceduri, zamijeni dtaNaslovi sa dtaTelefon . Zamjeni

Autor sa Ime. Kod će izgledati: Private Sub cmdPismo_Click(Index As Integer) Dim BookMark1 As Variant 'Markiraj prostor ako ne bude zapisa BookMark1 = dtatelefon.Recordset.Bookmark dtaTelefon.Recordset.MoveFirst dtaTelefon.Recordset.Find "Name >= '" + cmdPismo(I ndex).Caption + "'" If dtaTelefon.Recordset.EOF = True Then dtaTelefon.Recordset.Bookmark = BookMark1 End If txtIme.SetFocus End Sub 5. Dodaj kod cmdDodaj_Click proceduri. To je kod za dodavanje zapisa bazi

podataka. Dodaj i Briši dugmad ćemo onemogućiti. Klikni na pamti dugme kad završiš unos zapisa.

Private Sub cmdDodaj_Click() cmdDodajAdd.Enabled = False cmdPamti.Enabled = True cmdBrisi.Enabled = False dtaTelefon.Recordset.AddNew txtIme.SetFocus

Poglavlje 7: Rad sa bazama podatakama

238

End Sub 6. Dodaj kod proceduri cmdpamti_Click procedure. . Private Sub cmdSave_Click() dtaTelefon.Recordset.Update dtaTelefon.Refresh cmdDodaj.Enabled = True cmdPamti.Enabled = False cmdBrisi.Enabled = True txtIme.SetFocus End Sub 7. Dodaj kod proceduri cmdDelete_Click proceduri. Ona briše tekući zapis i

pomjera na sledeći zapis. Private Sub cmdBrisi_Click() dtaTelefon.Recordset.Delete dtaTelefon.Recordset.MoveNext If dtaTelefon.Recordset.EOF = True Then dtaTelefon.Refresh If dtaTelefon.Recordset.BOF = True Then MsgBox "Morate dodati zapis", vbOKOnly + vbInfo rmation, "Fajl je

prazan" Call cmdAdd_Click Else dtaTelefon.Recordset.MoveFirst End If End If txtName.SetFocus End Sub 8. Upamti aplikaciju. Startaj je i isprobaj. 7.12 Dodatne podesive kontrole podataka • Postoje tri podesive kontrole podataka u standardnom Visual Basic :

DataList , DataCombo i DataGrid ADO alati. Objasnićemo svaki posebno i dati sugestuju kako ih upotrijebiti, dati njihove osobine i dogañaje. Ako ikona bilo kog od alata nije u lijevoj strani za alate izaberite Project iz glavnog menija , tada Klikni na Components . Izaberi Microsoft DataList Controls

Poglavlje 7: Rad sa bazama podataka

239

6.0 (OLEDB) i Microsoft DataGrid 6.0 (OLEDB) u Components prozoru. Klikni na OK – kontrole će biti u alatima.

• Kao kontrola podataka , prethodne verzije Visual Basic-a koristile su DAO

verziju list, combo i grid kontrole, sa imenima DBList, DBCombo i DBGrid. . • DataList Box:

Prva kontrola koju ćemo obraditi je DataList Box . List okvir se automatski puni sa poljima specifične kontrole podataka. Izbor sa list okvira uzima se da izmijenimo drugo polje sa iste kontrole podataka ili polje sa druge kontrole podataka. Osobine DataList okvira su:

DataSource Ime kontrole podataka koje se koristi u izboru.

DataField Ime polja koje se mijenja u Recordset

odreñenog sa DataSource. RowSource Ime kontrole podataka korištene kao izvor

stavki za list okvir. ListField Ime polja u Recordset odreñenog sa

RowSource korištenog da popuni list okvir. BoundColumn Ime polja u Recordset odreñenog sa

RowSource koji prolazi kroz DataField kada odaberemo stavku. Obično je isti kao i ListField.

BoundText Vrijednost teksta BoundColumn polja. To je

vrijednost koja prolazi do DataField osobine. Text Vrijednost teksta izabrane stavke u listi.

Obično je jednaka BoundText. Često je upotreba DataList okvira da popuni listu iz baze podataka koja je vezana sa njim. Selekcija popunjava bilo koji alat na formi bez obzira da li je on kontrola podataka ili ne.

Poglavlje 7: Rad sa bazama podatakama

240

Kao brzi primjer. uzećemo DataList okvir popunjen sa Naslov (ListField ) poljem iz dtaPrimjer (RowSource ) kontrole podataka. Kontrola podataka je povezana sa Naslovi tabelom u BIBLIO.MDB bazi podataka.

• DataCombo okvir:

DataCombo okvir je vrlo sličan DataList okviru. Jedina razlika je u tome što je DataCombo okvir listu prikazuje kao padajući meni i korisniku daje mogućnost da izabere jednu stavku iz menija i vrati je u Text osobinu.

• DataGrid alatka:

DataGrid alatka je najviše korištena alatka za obradu podataka u bazi podataka. Ona prikazuje unutar baze podataka tabele zavisno od kontrole podataka. Tabela se može mijenjati sa podacima po želji. DataGrid kontrola je klasa sama po sebi. Ona je odvojen visoko funkcionalni program. Jedino moramo dodijeliti tabelu DataSource osobini.

Primjer snage DataGrid kontrole, jednostavno podesimo DataSource osobinu na dtaPrimjer kontrolu podataka, koja je povezana sa tabelom Naslovi u BIBLIO.MDB bazi podataka:

Poglavlje 7: Rad sa bazama podataka

241

Od ovog trenutka možemo skrolovati tabelu i unositi vrijednosti u nju. Sve promjene se automatski unose u bazu podataka. Kolone se mogu mijenjati u toku izvoñenja programa! Moguće je da imamo više redova i kolona! Jedna vrlo moćna alatka.

7.13 Kreranje izvještaja iz podataka • Nakon svega sad ćemo pokazati kako se kreira izvještaj u Visual Basic-u. • Postoje dva koraka za kreiranje izvještaja. Prvo nam je potrebna alatka Data

Environment . On je dizajniran unutar Visual Basic-a i kaže izvještaju šta je u bazi podataka. Drugi korak je da kreiramo Izvještaj. Data Environment i Data Report fajlovi postaju dio Visual Basic projekta razvijenog kao DBMS.

• Visual Basic 6.0 generator izvještaja zahtijeva detaljnu analizu. Najlakše ga je

objasniti kroz primjer. Pogledaćemo izvještaj kreiran za tabelarni prikaz baze podataka Telefonski Imenik .

Poglavlje 7: Rad sa bazama podatakama

242

Primjer 7.4 Telefonski Imenik – Kreiranje Izvještaja Kreiraćemo pisani izvještaj sa listom svih imena i telefonskih brojeva u našoj bazi podataka. Prvo ćemo kreirati okruženje podataka (Data Environment ), a nakon toga (Data Report ). Tada ponovo otvorimo bazu podataka telefona i dodajemo joj mogućnost izvejštaja. Kreiranje okruženja baze podataka 1. Startamo novi (Standard EXE) projekt. 2. Na (Project) meniju, Kliknemo na (Add Data Environment) . Ako te stavke

nemamo u alatima kliknemo na (Components) . Kliknemo na (Designers) i izaberemo (Data Environment) i zatim na OK da ga dodamo meniju.

3. Postavimo sada bazu podataka. U Data Environment prozoru kliknemo

desnim klikom miša na Connection1 i odaberemo Properties . U Data Link Properties dijaloškoj kutiji izaberemo Microsoft Jet 3.51 OLE DB Provider . Kliknemo na Next da dobijemo Connection dio. Nañemo bazu podataka telefona (mdb ) fajl. Kliknemo OK da zatvorimo dijalog.

4. Prenijeli smo (Data Environment ) koja se baza povezuje. Desnim klikom

kliknemo na Connection1 dio i onda na Rename . Promijenimo ime u Telefon . Desnim klikom kliknemo na Add Command da kreiramo Command1 . Desnim klikom miša kliknemo na njega i izaberemo osobine (Properties) . Dodijelimo sledeće osobine:

Command Name Listatelefona Connection Telefon DataBase Object Table ObjectName Listatelefona

5. Klikni na OK. Sve ovo je bilo potrebno da vežemo bazu podataka. 6. Ispis osobima i dodjeljivanje okruženja podataka i osobinu denTelefon . Klikni

na File i Save denTelefon As . Upamti okruženje u odgovarajići direktorij. Mi eventualno dodajemo fajl u telefonsku bazu. Od ove tačke prozor okruženja baze podataka izgleda:

Poglavlje 7: Rad sa bazama podataka

243

7.14 Kreiranje pisanog izvještaja Kada kreiramo okruženje baze podataka (Data Environment) možemo kreirati izvještaj (Data Report). 1. Na Project meniju, kliknemo na Add Data Report i on će biti dodat projektu.

Ako te alatke nema klikenmo na Components . Kliknite na Designers tab, i izaberite Data Report i kliknite na OK da dodate dizajniranje na vaš meni.

2. Postavite osobine za izvještaj:

Name rptTelefon Caption Telefonski Direktorij DataSource denTelefon (izaberite ga) DataMember ListaTelefona (ime tabele)

3. Desnim klikom miša kliknite na Data Report i onda kliknemo na Retrieve Structure . Nakon toga je ustanovljena struktura izvještaja.

4. Izvještaj ima pet sekcija: Report Header , Page Header i Detail sekciju, i

Page Footer i Report Footer . Zaglavlja i podnožja sadrže informacije koje se nalaze na svakoj stranici. Da bi unjeli informacije na jedan od ovih regiona kliknite desnim klikom miša na odreñeni region, Kliknite na Add Control , tada izaberite kontrolu koju ćete postaviti. Te kontrole se zovu data report

Poglavlje 7: Rad sa bazama podatakama

244

controls i osobine im se Mijenjaju kao i za obične kontrole. Pokušajte dodati zaglavlja.

5. Sekcija Detail koristi se za unos informacija koje želite ispisati u izvještaju iz

baze podataka. Postavićemo dva polja (Ime, Telefon ) na ovu sekciju. Klikni na tab Ime u Data Environment prozoru i prenesi ga u Detail sekciju na Data Report. Dobili smo dvije stavke: tekst kutiju Ime i tekst kutiju Ime (ListaTelefona). Prva tekst kutija je informacija na zaglavlju. Pomjerite ove tekst okvire u Page Header sekciju. Drugi tekst okvir je aktuelna vrijednost za Ime iz ListaTelefona tabele. Prenesi Telefon tab iz Data Environment na Data Report. Podešavanje tekst okvira je na isti način. Svi izvještaji podataka imaju zaglavlje stranica Ime i Telefon. Preko tih zaglavlja, i polja koja su postavljena ispisaćemo izvještaj. Forma izgleda kao na slici:

U ovoj formi, smanjimo labele i podesimo izgled 6. Klikni na File i Save rptTelefon As . Upamtite okruženje u odgovarajući

direktorij. Sada otvorimo bazu podataka telefona i dodijelimo okruženje podataka u taj projekt i dodamo mogućnosti da ispišemo izvještaj.

7.15 Pristupite Izvještaju 1. Otvorite ponovo projekt telefonskog imenika. Dodajmo komandno dugme sa

imenom cmdIzvjestaj i date Caption i Show Report . (Imate dva taba i to jedan General i one DataReport )

Poglavlje 7: Rad sa bazama podataka

245

2. Sada dodamo okruženje podataka i izvještaj fajlove projektu. Klikni na Project meni stavka, tada Kliknemo na Add File . Izaberemo denTelefon i kliknemo na OK. Takoñe dodamo rptTelefon .

3. Postavi kod u proceduru cmdReport_Click : Private Sub cmdReport_Click() rptTelefon.Show End Sub 4. Koristi se Show metod da ispisemo izvještaj. 5. Upamtimo aplikaciju i startamo je. Klikni na Show Report dugme i dobijemo:

Dobili ste verziju ispisa u telefonskom imeniku. Klikni na Printer ikonu i ispis je tu. Ovim smo prikazali sve ono što smo željeli reći u ovoj knjizi i ovom izdanju o programiranju i Visual Basic-u.

Poglavlje 8: Primjeri u Visual Basic-u

246

Primjer 8.1 Jednosatavan primjer: Korišćenje If ... Then ... Else strukture.

U ovom programu treba da nacrtate 3 text boxes, 3 label boxes, 1 image box i 4 command buttons. Promenite ime prvog text box u x, drugog text box u y i trećeg text box u z. Promenite naslov label1 u "+" i naslov label2 u "=". Obrišite naslov label3 i promenite njeno ime u display, njena svrha je da pokaže da li je odgovor wrong (pogrešan) ili correct (tačan). Sada promenite naslov 4 command buttons u Start, Next, OK and Stop, možete takoñe promeniti njihova imena prema njihovim naslovima respektivno. Takoñe treba da nacrtate liniju i ubacite sliku u image box. Pogledajmo kod: Private Sub Stop_Click() End End Sub Sub Start_Click() ' Uzmi slu čajan broj od 1 do 100 Randomize Timer prviBr = Int(Rnd * 100) + 1 secondNum = Int(Rnd * 100) + 1 x.Text = Str$(prviBr) y.Text = Str$(drugiBr) End Sub

Literatura

247

Private Sub OK_Click( ) If z.Text = x.Text + y.Text Then display.Caption = "Dobro" Image2.Visible = "true" Line1.Visible = "true" Else display.Caption = "Loše" Image2.Visible = "false" Line1.Visible = "false" End If End Sub Private Sub Next_Click() z.Text = "" display.Caption = "" Start_Click End Sub

Ako želite da omogućite da korisnik pritisne Enter key nakon davanja odgovora, napišite proceduru dogañaja za keyPress dogañaj:

Private Sub z_KeyPress(KeyAscii As Integer) If (KeyAscii = 13) Then OK_Click End If End Sub 'gde KeyAscii=13 simbolizuje Enter key .

Nakon startovanja programa, korisnik treba da klikne na Start button. Dva broja će biti prikazana u prva dva text box. Korisnik treba da da odgovor i klikne OK. Korisnik će znati da li je odgovor tačan ili netačan prema odgovoru u trećoj labeli. Da bi završili rad kliknite na Stop button.

U programu treba da znate šta rade Rnd and Int funkcije . Rnd vraća slučajni broj izmeñu 0 i 1 dok Int vraća sledeći najmanji ceo deo broja.

Primjer: if Rnd=0.7423 100*Rnd=74.23 Int(100*Rnd)=74

Poglavlje 8: Primjeri u Visual Basic-u

248

Kombinacijom Rnd i Int funkcija, možete generisati slučajni integer. Str$ funkcija pretvara broj u tekst dok Val funkcija pretvara tekst u broj.

Isprobajte program.

Primjer 8.2 Na ulazu se unose dva slova . Ustanoviti da li su slova po abecednom redosledu.

Private Sub cmdKraj_Click() Unload Me End Sub Private Sub cmdNoviUnos_Click() txtSlovo1.Text = "" txtSlovo2.Text = "" lblRezultat.Caption = "" txtSlovo1.SetFocus End Sub Private Sub cmdObrada_Click() Dim S1 As String, S2 As String S1 = txtSlovo1.Text S2 = txtSlovo2.Text If S1 = S2 Then lblRezultat.Caption = "Slova su ista" ElseIf S1 < S2 Then lblRezultat.Caption = "Uneta slova su po abecedn om redosledu"

txtSlovo2

txtSlovo1

cmdKraj

cmdNoviUnos cmdObrada

Literatura

249

Else: Rezultat.Caption = "Uneta slova nisu po abec ednom redosledu" End If End Sub Primjer 8.3 Napisati program koji nalazi najmanji od tri učitana broja. Kod:

Private Sub cmdKraj_Click() Unload Me End Sub Private Sub cmdNoviUnos_Click() txtA.Text = "" txtB.Text = "" txtC.Text = "" txtMin.Text = "" End Sub Private Sub cmdObrada_Click() Dim A As Single, B As Single, C As Single Dim MIN As Single A = txtA.Text B = txtB.Text C = txtC.Text MIN = A

txtSlovo1

txtSlovo1

txtSlovo1

txtMin

cmdKraj

cmdNoviUnos cmdObrada

Poglavlje 8: Primjeri u Visual Basic-u

250

If B < MIN Then MIN = B If C < MIN Then MIN = C txtMin.Text = MIN End Sub Primjer 8.4 Napisati program koji nalazi najveći od tri učitana broja. Kod:

Private Sub cmdKraj_Click() Unload Me End Sub Private Sub cmdNoviUnos_Click() txtPrvi.Text = "" txtDrugi.Text = "" txtTreci.Text = "" txtMax.Text = "" txtPrvi.SetFocus End Sub Private Sub cmdObrada_Click() Dim X As Single, Y As Single, Z As Single Dim Max As Single X = txtPrvi.Text Y = txtDrugi.Text Z = txtTreci.Text

txtPrvi

txtDrugi

txtTreći txtMax

cmdKraj

cmdNoviUnos cmdObrada

Literatura

251

If X > Y Then If X > Z Then txtMax.Text = X Else: txtMax.Text = Z End If ElseIf Y > Z Then txtMax.Text = Y Else: txtMax.Text = Z End If End Sub Primjer 8.5 Napisati naredbu uslovnog prelaska kojom se za dato x izračunava y po formuli:

y=

≥≤≤

5 xje ako ,2x

5<x1 je ako , 1-3x

1<x0 je ako , 2+ x

0< xje ako , 5-

Private Sub cmdKraj_Click() Unload Me End Sub Private Sub cmdNoviUnos_Click()

txtUnetiBroj

txtResenje cmdKraj

cmdNoviUnos cmdObrada

Poglavlje 8: Primjeri u Visual Basic-u

252

txtUnetiBroj.Text = "" txtResenje.Text = "" txtUnetiBroj.SetFocus End Sub Private Sub cmdObrada_Click() Dim x As Integer, y As Integer x = txtUnetiBroj.Text If x < 0 Then y = -5 ElseIf x < 1 Then y = x + 2 ElseIf x < 5 Then y = 3 * x - 1 Else y = 2 * x End If txtResenje.Text = y End Sub Primjer 8.6 Napisati naredbu uslovnog prelaska kojom se za zadato x izračunava y po formuli:

≤≤aslucajevim ostalim u ,1/x

7x 5 za , 1-3x

2<x<2- za ,2x

=y

cmdObrada

cmdKraj

cmdNoviUnos

txtUnetiBroj

txtRezultat

Literatura

253

Private Sub cmdKraj_Click() Unload Me End Sub Private Sub cmdObrada_Click() Dim x As Single, y As Single x = txtUnetiBroj.Text If x > -2 And x < 2 Then y = 2 * x ElseIf x >= 5 And x <= 7 Then y = 3 * x - 1 Else y = 1 / x End If txtRezultat.Text = y End Sub Private Sub Command1_Click() txtUnetiBroj.Text = "" txtRezultat.Text = "" txtUnetiBroj.SetFocus End Sub Primjer 8.7 Napisati naredbu uslovnog prelaska kojom se za zadato x izračunava y po formuli:

Poglavlje 8: Primjeri u Visual Basic-u

254

Primjer 8.7 : Adresar

cmdtrv

cmdrisi

cmddodaj

Lsv1 Trv1

Literatura

255

Poglavlje 8: Primjeri u Visual Basic-u

256

'Ovo upisujemo u General dijelu Private db As Database Private rs As Recordset Private w As Workspace 'Komanda za brisanje podataka iz fajla telefoni Private Sub cmdbrisi_Click() On Error Resume Next Dim l As ListItem 'Komanda za preuzimanje podataka iz fajla telefoni sor tirano po imenu Set rs = db.OpenRecordset("select * from telefoni order by ime asc") 'Ako je kraj fajla EOF ili je fajl prazan izlazimo iz p rograma If rs.BOF = True And rs.EOF = True Then Exit Sub 'Ako zapisa ima više od 1 tada brišemo zapis If rs.RecordCount > 1 Then rs.Delete End If 'Isti set komandi za List Box lsv1 Set rs = db.OpenRecordset("select * from telefoni order by ime asc") If rs.BOF = True And rs.EOF = True Then Exit Sub lsv1.ListItems.Clear rs.MoveFirst 'Dodajemo zapise iz fajla telefoni u list box lsv1 Do Set l = lsv1.ListItems.Add(, , rs!ime) l.SubItems(1) = rs!telefon rs.MoveNext Loop Until rs.EOF = True End Sub 'Komanda za dodavanje podataka u fajl telefoni Private Sub cmddodaj_Click() On Error Resume Next Dim l As ListItem Dim ime As String Dim telefon As String ime = InputBox("dodaj ime") telefon = InputBox("dodaj telefon") Set rs = db.OpenRecordset("select * from telefoni order by ime asc") If rs.EOF = True And rs.BOF = True Then Exit Sub rs.MoveLast 'Komanda za dodavanje u fajl telefoni db.Execute "insert into telefoni" & "(ime,telefon)values " & "('" + CStr(ime) + "','" + CStr(telefon) + "')"

Literatura

257

lsv1.ListItems.Clear Set rs = db.OpenRecordset("select * from telefoni order by ime asc") If rs.EOF = True And rs.BOF = True Then Exit Sub rs.MoveFirst Do Set l = lsv1.ListItems.Add(, , rs!ime) l.SubItems(1) = rs!telefon rs.MoveNext Loop Until rs.EOF = True End Sub 'Podprogram za rad sa Tree Box (okvirom za prikaz poda taka kao stablo) Private Sub cmdtrv_Click() On Error Resume Next Dim l As ListItem Set db = OpenDatabase("c:\telefon1.mdb") Set rs = db.OpenRecordset("select * from telefoni order by ime asc") If rs.EOF = True And rs.BOF = True Then Exit Sub rs.MoveFirst trv1.Nodes.Clear Do trv1.Nodes.Add , , , rs!ime 'trv1.Nodes.Add rs!ime, tvwChild, , rs!telefon rs.MoveNext Loop Until rs.EOF = True Me.Caption = "Moj adresar" End Sub 'Podprogram kod u čitavanja forme Private Sub Form_Load() On Error Resume Next Set w = DBEngine.Workspaces(0) Set db = w.CreateDatabase("c:\telefon1.mdb", dbLangGeneral) Set db = w.OpenDatabase("c:\telefon1.mdb")

Poglavlje 8: Primjeri u Visual Basic-u

258

'Ako fajl telefoni nije kreiran kreiramo ga If Err.Number <> 3204 Then db.Execute "create table telefoni" & "(ime string(30),telefon string(20))" db.Execute "insert into telefoni" & "(ime,telefon)values" & "('È. Antun','506-543')" db.Close Else End If Dim l As ListItem Set db = OpenDatabase("c:\telefoni1.mdb") Set rs = db.OpenRecordset("select * from telefoni order by ime asc") If rs.EOF = True And rs.BOF = True Then Exit Sub rs.MoveFirst Do Set l = lsv1.ListItems.Add(, , rs!ime) l.SubItems(1) = rs!telefon rs.MoveNext Loop Until rs.EOF = True Me.Caption = "Moj adresar" End Sub

Literatura

259

LITERATURA

[1]. Steven Holzner, Visual Basic 6 Black Box, ISBN: 1576102831, 1998

[2]. Paul Lomax, VBA&VB in Nutshell: The Language, 1998

[3]. Lavton Walnum, Complete Idiots Guide to Visual Basic 6, ISBN: 078971812x,1998

[4]. Carl Franklin, Visual asic 6.0 Internet Programming, ISBN:0471314986,1999

[5]. Jeffrey Mcmanus, Database Access with Visual Basic, ISDN: 1562765671, 1997

[6]. Jason Roff, 123 Visual Basic Manual, 2000

[7]. Jamieson Olsen, Visual Basic for Applications. 2001

[8]. Walter Milner, ADO DB in ACESS VBA, 2005

[9]. Dr. Hugh Melvin, Introduction to VB, 2005

[10]. N Bojčetić, D. Marjanović, Katedra za osnove računala, Uvod u računala VB, 2004

[11]. Microsoftov platform SDK http://msdn.microsoft.com/developer/sdk

[12]. Microsoft Test Certificate Server http://sectest.microsoft.com/

[13]. PC Design Guide http://www.microsoft.com/hwdev/

[14]. Microsoft http://www.microsoft.com/

[15]. Schlumberger http://www.slb.com/

[16]. Modeliranje podataka – Prof.dr. Alempije Veljović [17]. Microsoft Access 2003 Biblija-Cary N.Prague, Michael R.Irwin, Jeniffer

Reardon

[18]. Baze podataka-Prof.dr. Robert Manger

[19]. http://www.accessdatabasetips.com

Literatura

260

[20]. Visual Basic 2005 Programmer's Reference,Rod Stephens,2005

[21]. Schaum's Outline of Visual Basic , Byron S Gottfried, 2001

[22]. Access 2007 VBA Programmer's Reference , Teresa Hennig, Rob Cooper, Geoffrey L. Griffith, and Armen Stein, 2007

[23]. The Beginner's Guide to Visual Basic 4.0 , Peter Wright, 2005

[24]. Desktop Applications With Microsoft Visual Basic 6.0 MCSD Training Kit , Microsoft and Corporation Microsoft,1999

[25]. Essentials of Visual Basic 5.0 Programming , David I. Schneider, 1998

[26]. Learning Visual Basic Through Applications ,Clayton Crooks II, 2001

[27]. Using Visual Basic: Michael Sprague , Michael W. Sprague and Jennings, 1997

[28]. Visual Basic 6 Exam Guide: Become a Microsoft Certified Professional with CDROM , Howard Hawhee, 1997

[29]. The Visual Basic 6 Programmer's Reference: , Wayne S. Freeze ,1997

[30]. Visual Basic 6 Master Reference , Clayton Walnum , 1999

[31]. Visual Basic: Programmer's Reference , Dan Rahmel , 1998

[32]. The Beginner's Guide to Visual Basic 4.0 , Peter Wright 1998

[33]. http://www.experts-exchange.com/Databases/MS_Access