You are on page 1of 75

UNIVERZITET U SARAJEVU ELEKTROTEHNIKI FAKULTET

OSNOVE PROGRAMIRANJA U VISUAL BASICU ZA PREDMET OSNOVE MEHATRONIKE NA ODSJEKU ZA ELEKTROENERGETIKU


- Praktikum za laboratorijske vjebe -

Asistent: Vii asistent Mr. Almir Ahmethodi Nastavnik: Vanr.prof.dr Mirsad Kapetanovi

Osnove programiranja u Visual Basic-u

Sadraj
1. UVOD
Pokretanje Visual Basica-a Prvi pogled na radno okruenje Toolbox Project explorer Osobine - Properties Form Layout Postavljanje kontrola na formu Pokretanje programa Dodavanje programskog koda

2. OSNOVE DIZAJNIRANJA
Uvod Form Kontrole Pristupne tipke Formatiranje Podeavanje osobina u fazi rada programa Izbornici / Meniji

18

3. OSNOVE PISANJA PROGRAMSKOG KODA


Uvod Prozor za pisanje programskog koda View Code Event procedure Ope procedure / funkcije Parametarske procedure Funkcije Naini prikaza procedura / funkcija Neke vaniji dogaaji Message i Input box Provjera sintakse Auto Member liste Duge linije programskog koda

30

4. VARIJABLE
Deklaracije varijbli Tipovi varijabli DIM kljuna rije Nazivi varijabli Dodjeljivanje vrijednosti varijablama Inicijaliziranje varijabli

44

Osnove programiranja u Visual Basic-u

Pisanje izraza u naredbama pridruivanja Pravila redoslijeda izvravanja operacija Operacije sa nizovima rijei (stringovima) Nizovi Jednodimenzionalni nizovi Viedimenzionalni nizovi Dinmiaki nizovi Korisniki definirani tipovi

5. OSNOVNE NAREDBE
Uslovni izrazi Logika poreenja Logike operacije NOT AND OR XOR EQV IMP Redoslijed izvravanja Naredbe odluivanja IF naredba SELECT CASE naredba Programske petlje DO petlja FOR petlja Naredbe za grafiki prikaz Naredba LINE Naredba CIRCLE API Funkcije

55

6. RAD SA DATOTEKAMA PODATAKA


Uvod Datoteke sa sluajnim pristupom Postupak rada sa datotekama sa sluajnim pristupom Otvaranje datoteka sa sluajnim pristupom Upisivanje podataka itanje podataka Pozicioniranje na eljeni red unutar datoteke podataka Tekstualne datoteke Kreiranje i otvaranje tekstualnih datoteka Upisivanje podataka itanje podataka Zatvaranje tekstualnih datoteka

70

Osnove programiranja u Visual Basic-u

1. UVOD

Pokretanje Visual Basica-a


U tekstu e se koristiti primjeri i uputstva vezana za Visual Basic 6.0 (VB) koji se isporuuje od strane Microsoft-a kao dio veeg i kompletnijeg paketa programa namijenjenih razvoju aplikacija pod nazivom Visual Studio 6.0. Gotovo sve reeno mogue je primjeniti kako za starije varijante VB-a tako i za novije inaice ovog programskog jezika.

Slika 1.1 Pokretanje Visual Basic-a

Osnove programiranja u Visual Basic-u

Nakon instalacije Visual Basica, program je u Windows-ima mogue jednostavno pokrenuti koritenjem izbora Start All Programs Microsoft Visual Studio 6.0 Microsoft Visual Basic 6.0, kao to je to i pokazano na Slici 1.1. Prvi prozor koji se pojavljuje na ekranu nakon pokretanja Visual Basic-a je prozor New Project, slika 1.2.- Project je termin kojim se oznaava svaki program koji se kreira u Visual Basic-u.

Slika 1.2 Prozor New Project

U ovisnosti od postavki vezanih za pokretanje Visual Basica-a mogue je da se prozor New Project i ne pojavi nakon prvog pokretanja te da se automatski otvori novi podrazumijevani tip projekta (uobiajeno je da je to Strandard EXE tip projekta). Prozor New Project sadri tri kartice: New, Existing i Recent. - Na kartici New nalaze se opcije za zapoinjanje razliitih vrsta novih projekata u Visual Basic-u. - Preko kartice Existing mogue je nastaviti prethodno zapoeti projekat koji je prethodno spaen. - Kartica Recent omoguava pokretanje projekata na kojima se radilo tokom prethodnih nekoliko pokretanja Visual Basic-a na datom raunaru.

Osnove programiranja u Visual Basic-u

Slika 1.3 Radna povrina Visual Basica-a

U svrhu savladavanja osnova Visual Basic-a sasvim je dovoljno da se koristi standardna vrsta projekata pa je samo potrebno na kartici New izabrati opciju Standard EXE ime e se konano pokrenuti radna povrina Visual Basic-a, prikazana na slici 1.3. Tokom savladavanja programiranja i dizajniranja u Visual Basic-u ovo e biti uobiajen nain pokretanja novih projekata. Mogue je na prozoru New Project ukljuiti opciju Dont show this dialog in the future ime e se sprijeiti pokretanje ovog prozora svaki kasniji put prilikom pokretanja Visual Basic-a. U ovom sluaju, svaki put kada se pokrene Visual Basic automatski e se otvoriti novi projekat tipa Standard EXE. Reaktiviranje pokretanja prozora New Project mogue je izborom opcije Promts for project option koja se nalazi na ekranu Options na kartici Environment. Ovaj prozor se pokree preko izbornika Tools Options.

Prvi pogled na radno okruenje


Kao to se moglo vidjeti na slici 3, Visual Basic radno okruenje sastoji se od nekoliko razliitih elemenata koji omoguavaju rad na svim koracima neophodnim u razvoju jednog projekta. Na lijevoj strani prozora nalazi se Toolbox, dok se na desnoj strani nalaze Project Explorer, Properties i Form Layout vertikalno poredani jedan iznad drugog: - Toolbox sadri kolekciju sliica koje predstavljaju kontrole koje se standardno koriste u svakom Windows programu, - Project Explorer prikazuje trenutni sadraj projekta, sve elemente od kojih se projekat sastoji,
8

Osnove programiranja u Visual Basic-u

- Properties prozor sadri listu osobina odreene kontrole ili objekta i omoguava na brz nain promjenu tih osobina te - Form Layout omoguava jednostavno odreivanje poloaja prilikom pojavljivanja pojedinih prozora u programu. Inicijalno ovi elementi radnog okruenja se nalaze na pozicijama koje su upravo objanjene. Meutim, svaki od ovih elemenata moe se po elji pomijerati i podeavati po veliini tako da se zadovolje specifini zahtjevi tokom dizajniranja projekta. Svaki od ovih elemenata Visual Basica bit e u kasnijim koracima detaljno objanjen. Svi su predstavljeni preko vlastitih prozora na radnoj povrini Visual Basic-a, a mogue ih je jednostavno dodati ili ukloniti sa radne povrine. Uklanjanje se vri jednostavno klikom na X u gornjem desnom uglu odgovarajueg prozora. Dodavanje prozora jednog od ova etiri elementa radnog okruenja je mogue koritenjem istoimene opcije na izborniku View: - Project Explorer ili CRTL+R, - Properties ili F4, - Form Layout Window te - Toolbox, kao to je to vidljivo na slici 1.4.

Slika 1.4 Opcije na izborniku View

Osnove programiranja u Visual Basic-u

Projekat se sastoji od nekoliko tipova datoteka koje predstavljaju osnovne elemente projekta kao to su formovi (forms), moduli, izvjetaji, ali i datoteke koje kreira sam projekat i koje ne sadre direktno dizajnerske niti programske elemente. Dakle, jedam jednostavniji projekat se sastoji od: - Formova (forms) - Prozori koji omoguavaju kreiranje grafikog dijela programa i koji olakavaju interakciju izmeu korisnika i programa. Alati koji se nalaze na toolbox-u se koriste za kreiranje grafikog sadraja formova. Svaki form takoe sadri i programski kod koji se izvrava u ovisnosti od mjesta na kome se kod nalazi. Kod se moe posebno kreirati u okviru forma, ali i posebno za kontrole koje se nalaze na form-u i izvravati se u ovisnosti od dogaaja kojem se ovaj kod pridruuje. Svaki form se u Windows-u spaava kao posebna datoteka podataka sa ekstenzijom FRM. Opciono form moe da ima i dodatnu datoteku sa nastavkom FRX u kojoj se pohranjuju neke specifinosti vezane za posmatrani form. - Moduli (modules) - Posebni elementi projekta koji slue samo za smjetaj programskog koda. Najee se koriste za kreiranje opih funkcija i procedura koje se neovisno koriste u vie dijelova projekta. Spaavaju se u datoteke podataka sa nastavcima BAS. - Izvjetaji (data reports) - Elementi projekta koji slue za generisanje razliitih izvjetaja pripremljenih za tampanje. Spaavaju se u datoteke podataka sa nastavcima DSR. - Projektna datoteka (project file) - uva podatke o svim ostalim datotekama i objektima koji se koriste u projektu. Visual Basic spaava ovu datoteku sa nastavkom VBP,Visual Basic Project. Pokretanje projekta je mogue i direktno kroz Windows Explorer dvostrukim klikom na ovu datoteku.

Toolbox
Osnovne alatke iz toolbox-a, prikazane na slici 1.5, su one koje se i najee koriste u svakodnevnom dizajniranju. Treba napomenuti da su prikazane samo najosnovnije i najee koritene kontrole te da je mogue dodavanje i koritenje jo mnogo specifinih, ali i ne tako esto koritenih kontrola.

Slika 1.5 Toolbox Alatke (kontrole)

10

Osnove programiranja u Visual Basic-u

Tabela 1.1 - Osnovne kontrole i njihova namjena

PictureBox Kao to samo ime govori slui za smjetaj i prikaz slika. Label Ispis odgovrajueg teksta, samostalno kao informacija ili ee kao objanjenje uz neku drugu kontrolu. TextBox Direktan unos teksta. Ulazni podaci bilo u obliku obinog teksta ili u numerikom obliku se unose u program koritenjem ove kontrole. Frame Logiko objedinjavanje nekoliko istovrsnih kontrola u jednu cjelinu. Najee se koristi za logiko i vizuelno objedinjavanje vie kontrola tipa OptionButton ili CheckBox. CommandButton Komandno dugme, slui za pokretanje neke aktivnosti, npr. za potvrivanje unosa podataka (vjerovatno najee koriteno OK dugme), zatvaranja ili otvaranja prozora itd. Kontrola koja se nalazi na gotovo svakoj formi. CheckBox Ukljuivanje odnosno iskljuivanje pojedinih opcija. Razlikuje se logiki od OptionButton-a (poznatog i kao RadioButton) zbog naina koritenja: koristi se u situaciji gdje je mogue odabrati vie odgovora. Koristi se esto u bloku unutar kontrole Frame. OptionButton Ukljuivanje odnosno iskljuivanje jedne od opcija u grupi. Koristi se najee zajedno sa kontrolom Frame. Pri ovome kontrola Frame ograniava prostor na kome samo jedna od postojeih OptionButton kontrola moe biti ukljuena u jednom trenutku. Ukoliko se ne koristi kontrola Frame onda je opseg zajednikog djelovanja kontrole form na kome se kontrole nalaze. ComboBox Izbor jedne od ponuenih opcija iz padajue liste ili upis podatka, slino kao kod TextBox-a. Odavde i naziv Combo jer je mogue podesiti osobine tako da je mogu jedan (izbor jedne od opcija) ili drugi (upis teksta ili numerikih podataka) nain unosa podataka. Takoe je mogue izvriti i ogranienje na samo izbor ponuenih podataka. Kombinacija izmeu TextBox-a i ListBox-a. ListBox Izbor vie od jednog ponuenog podatka za dalju obradu. HScrollBar Horizontalni kliza. Koristi se za grafiko zadavanje numerikih podataka ili za horizontalnu kontrolu / pomjeranje grafike VScrollBar Vertikalni kliza. Koristi se za grafiko zadavanje numerikih podataka ili za vertikalnu kontrolu / pomjeranje grafike Timer Omoguava vremensko izvravanje odgovarajue aktivnosti u vremenskim koracima koji se zadaju u veliini milisekundi. DriveListBox Izbor lokalnih jedinica / drive-ova. Neto zastarjala kontrola jer postoje univerzalniji naini i bolje kontrole za pristup hardveru raunara. DirListBox Pregled direktorija (folder-a) na lokalnom raunaru FileListBox Pregled datoteka na odabranom direktoriju (folder-u). Kontrola se najee koristi zajedno sa DirListBox-om i DriveListBox-om. Shape Direktno iscrtavanje osnovnih geometrijskih oblika: pravougaonika, kvadrata, elipsi i krugova. Line Iscrtavanje obine linije. Image Kontrola slina kontroli PictureBox - prikaz slika odnosno fotografija. Data Kontrola za rad sa podacima iz baza podataka. OLE Kontrola koja omoguuje ubacivanje bilo koje druge Windows datoteke: video klipa, excel dijagrama, word dokumenta...

11

Osnove programiranja u Visual Basic-u

Project explorer
Kao to je ve reeno, svaki se Visual Basic projekat u fazi dizajniranja i programiranja sastoji se od nekoliko razliitih tipova objekata: formova, modula, izvjetaja itd. Dizajn i programski kod svakog od ovih objekata spaava se u Windows-u u okviru jedne ili vie datoteka. Svaki prozor koji sadri projekat, a koji se kreira pomou objekta form, posjeduje datoteku sa nastavkom FRM. Eventualno, ako se na formi nalaze i neke posebne kontrole mogue je da jedan form (prozor), pored FRM datoteke, ima i jo jednu datoteku sa nastavkom FRX. Na isti nain, moduli, u koji se upisuje iskljuivo programski kod spaavaju taj kod u datoteke tipa BAS. Objekat koji omoguava pravljenje izvjetaja, DataReport spaava se u datoteke sa nastavkom DSR. Project Explorer je prozor koji unutar razvojnog okruenja Visual Basica, slino kao i Windows Explorer unutar Windows-a, hijerarhijski prikazuje pojedine objekte koji su ukljueni u projekat. Na slici 6 prikazan je primjer izgleda Project Explorera u koji su dodana dva forma, jedan MDI form, jedan modul i jedan izvjetaj. Potrebno je napomenuti da objektima na slici nisu data imena kao to to nalae pravilo profesionalnog programiranja. U zagradi se nalazi naziv datoteke u kojoj je smjeten opis dizajna i programski kod objekta.

Slika 1.6 - Primjer Project Explorer-a

Dva osnovna tipa formi su: obini form i MDI form. U jednom projektu moe biti vie obinih formova, ali moe da se kreira samo jedan MDI form. Skraenica MDI dolazi od engleskog trermina Multi Document Interface i oznaava program u kome se svi prozori (formovi) otvaraju unutar MDI forme i ne prikazuju se zasebno na Windows traci - taskbar-u. Da bi neki form bio dio MDI forme i da se otvara samo unutar ovog glavnog prozora programa potrebno je da se postavi osobina forma MDIChild na True. Suprotan termin od MDI je SDI koji oznaava Single Document Interface i u ovom sluaju svaka forma u projektu, grafiki se ponaa zasebno iako logiki i programski djeluju kao jedna cjelina. Dodavanje objekata u projekat se vri preko izbora Project sa glavnog izbornika (menija), slika 1.7.

12

Osnove programiranja u Visual Basic-u

Slika 1.7 - Izbornik Project

Dodavanje objekata se vri koritenjem odgovarajuih opcija za dodavanje (Add Form, Add MDI Form, Add Module...). Na slici je evidentno da opcija Add MDI Form nije dostupna tj. da nije mogue dodati MDI formu. Razlog je u injenici da je u projekat ve dodana jedna MDI forma, to se i vidi na Project Explorer-u na slici 6. Prilikom dodavanja nekog od objekata u projekat, Visual Basic nudi izbor nekoliko podvrsta za gotovo svaki objekat. Podvrste su obino, do nekog nivoa, dizajnirani specifini prozori koji se standardizirano koriste u Windows aplikacijama, npr. Splash Screen, About Dialog, Tip of the Day itd Specijalne vrste prozora, tipa message box-a i input-box-a, su definirane unutar Visual Basica pa za njih nije potrebno definiranje posebnih formi, odnosno datoteka, o njima e biti govora kasnije. Spaavanje projekta se svodi na spaavanje svih datoteka koje predstavljaju sve koritene objekte: formove, module, izvjetaje itd. Prilikom spaavanja projekta po prvi put otvarat e se prozori Save As... koji e zahtijevat izbor direktorija za spaavanje i upisivanje naziva datoteka za svaki objekat posebno, te na kraju i za sam projekat kada se definira dirketorij i naziv projektne VBP datoteke.

13

Osnove programiranja u Visual Basic-u

Osobine - Properties
Svaki element projekta, form, modul, svaka kontrola koja se nalazi na formu posjeduje grupu osobina (properties). Ove osobine se u najveoj mjeri zadavaju u fazi dizajniranja, ali se takoe mogu mijenjati i tokom izvoenja programa, ukoliko se promjena osobine definira u programskom kodu. U fazi dizajniranja osobine se podeavaju u prozoru Properties i to tako da se prvo oznai eljeni objekt / kontrola te se onda pree ne podeavanje pojedinih osobina tog objekta / kontrole.

Slika 1.8 - Prozor Properties

Najvanija osobina svakog objekta ili kontrole je njegovo ime (Name). Ovo ime objekta / kontrole se koristi svaki put kada se radi manipulacija sa podacima koje objekat / kontrola sadri ili kada se mijenja neka osobina objekta / kontrole. Svaki put kada se doda neka kontrola na form, Visual Basic automatski dodjeljuje podrazumijevano ime toj kontroli npr Command1, Check1... U cilju kvalitenog i jasnog pisanja programskog koda preporuuje se promjena ovih default imena koje daje Visual Basic i davanje odgovarajucih i prepoznatljivih imena svakoj kotroli. Imenovanje kontrola, slino kao i deklariranje varijabli je prilino definirano i postoje pravila koja se proporuuju. Neka od ovih pravila bit e kasnije i prezentirana. Prozor Properties nudi dva naina prikaza i organizacije osobina: alfabetski i po kategorijama. Odgovarajui prikazi su odijeljeni preko zasebnih kartica. Prilikom oznaavanja bilo koje od osobina u dnu prozora se ispisuje i kratko objanjenje o tome ta oznaena osobina odreuje.

14

Osnove programiranja u Visual Basic-u

Form Layout
Pomou prozora Form Layout mogue je definirati tano mjesto pojavljivanja forme na ekranu. Prozor omoguuje veoma jednostavan nain odreivanja pozicije forme: dovoljno je kliknuti na formu unutar Form Layout-a i drei lijevu tipku miu povui form na eljeni poloaj. Na slici 9 prikazan je izgled Form Layout-a sa jednim MDI formom i dva obina forma od kojih je jedan, Form1, MDI Child tip.

Slika 1.9 - Prozor Form Layout

Postavljanje kontrola na formu


Postavljanje kontrole na form je veoma jednostavan zadatak: dovoljan je dvostruki klik na eljenu kontrolu u Toolbox-u i Visual Basic e automatski dodati tu kontrolu na trenutno aktivni form. Drugi nain je da se jednom klikne na odgovarajuu kontrolu u Toolbox-u i da se nakon toga drei lijevu tipku na miu napravi pravougaonik na formi. Nakon to se napravi pravougaonik na formi otputanjuem lijeve tipke na miu odabrana kontrola e da se pozicionira na formi dobijajui oblik jednak dimenzijama oznaenog pravougaonika.

Pokretanje programa
Program se moe pokrenuti u bilo kome trenutku na jedan od slijedea tri naina: - Pritiskom funkcijske tipke F5 - Izborom opcije Start sa menija Run - Klikom na plavi trokuti na traci sa alatima. S obzirom da jedna projekat / program gotovo uvijek ima vie od jedne forme potrebno je definirati i koja se to forma inicijalno prva pojavljuje tokom pokretanja projekta / programa. Pored forme moe se odabrati i posebna procedura pod nazivom Main koja e se prva izvriti tokom pokretanja projekta / programa. U okviru ove procedure mogue je programski definirati pojavljivanje inicijalne forme.

15

Osnove programiranja u Visual Basic-u

Slika 1.10 Osobine projekta

Odreivanje inicijalnog pokretanja se odreuje koritenjem prozora Projekt Ime Properties na izborniku Project, slika 1.10. Opcija se uvijek nalazi na dnu liste opcija te u ovisnosti od naziva trenutnog projekta ima i odgovarajui naziv (umjesto Project Ime stoji stvarni naziv projekta + Properties.). U listi opcija Startup Object nalazi se spisak svih formi koje su dodane u projekat te procedura Sub Main. Odabirom eljene forme podeava se koja e se forma prva prikazati nakon pokretanja programa. Proceduru Sub Main potrebno je kreirati u jednom od javnih modula te ukoliko se ona odabere da bude Startup objekt onda je potrebno unutar ove procedure upisati odgovarajui programski kod koji e da se izvri pokretanjem programa.

Dodavanje programskog koda


Programski kod se u Visual Basic-u dodjeljuje pojedinim dogaajima (Events) za svaku kontrolu na formi, odnosno pie se zasebno u okviru posebnih, opih procedura ili funkcija koje se mogu pozivati sa razliitih mjesta. Svaka kontrola posjeduje vlastiti skup moguih dogaaja, npr. Click, DblClick, MouseUp, MouseDown, MouseMove itd. Kod koji se upie unutar odgovarajueg dogaaja izvrava se samo ako se taj dogaaj desi tokom izvoenja programa, npr. kod unutar dogaaja Click izvrava se samo ako se tokom izvoenja programa klikne na kontrolu kojoj je pod tim dogaajem upisan programski kod. Za otvaranje prozora za pisanje koda dovoljan dvostruki klik na neku od kontrola na formi ili pak samo dvostruki klik na formu. Takoe je mogue kretanje izmeu objekta i koda pomou izbornika View gdje se na prva dva mjesta nalaze opcije Code i Object.

16

Osnove programiranja u Visual Basic-u

Slika 1.11 Prozor za pisanje programskog koda

Prozor u kome se pie programski kod sastoji se od tri dijela: - glavnog centralnog dijela za pisanje koda, - liste u gornjem lijevom uglu koja slui za izbor kontrole za koju se eli pisati programski kod - liste u gornjem desnom uglu koja slui za izbor dogaaja (event-a) za koji se definira kod. U ovisnosti od vrste kontrole mijenja se i broj i vrsta dogaaja koji se mogu odabrati za pisanje programskog koda, tako npr. dogaaji Change i Validate postoje kod kontrole TextBox, ali ne postoje kod kontrole CommandButton. Sama forma za sebe posjeduje grupu dogaaja za koje se moe definirati programski kod, npr. za dogaaj Load koji se izvrava prilikom uitavanja forme ili dogaaj te npr. Unload prilikom zatvaranje forme. Svaki programski kod unutar nekog od dogaaja predstavlja proceduru za sebe. Visual Basic automatski prilikom otvaranja bilo kog dogaaja ispisuje zaglavlje procedure sa Private Sub i kraj procedure sa End Sub.Cijeli programski kod namijenjen za izvravanje prilikom datog dogaaja mora da se nalazi unutar ova dva reda programskog koda. U listi u gornjem lijevom uglu, pored svih kontrola koje su dodane na formu nalazi se i opcija (General). Ova opcija otvara prostor za deklariranje liste varijabli i konstanti koje se mogu koristiti u svim procedurama unutar programskog koda koji pripada posmatranoj formi. Takoe omoguava pristup kreiranim slobodnim procedurama ili funkcijama koje su definirane na nivou forme. Pristup tim procedurama i funkcijama je mogu preko opcija koje se prikazuju u listi na desnoj strani.

17

Osnove programiranja u Visual Basic-u

2. OSNOVE DIZAJNIRANJA

Uvod
Korisniko okruenje se moe definirati kao skup svih grafiki predstavljenih objekata i proceduralnih tehnika kojima se definira interakcija izmeu programa i korisnika. Nain na koji program dobija informacije od korisnika, nain prikaza i izbora razliitih opcija, razliite mogunosti koritenja tastature i mia, informacije koje program prikazuje korisniku sve su ovo elementi koje dizajner programa treba da ima na umu tokom procesa dizajniranja korisnikog, grafikog okruenja. Visual Basic, za razliku od svog prethodnika Basic-a ima na raspolaganju veoma jednostavne i mone alate za kreiranje ugodnog korisnikog okruenja. ak i osnovne alatke koje nudi Toolbox omoguavaju ispunjavanje veine uslova neophodnih za kreiranje zadovoljavajueg okruenja. Sve kontrole na Toolbox-u su intuitivne, koritene u svim Windows aplikacijama i to je najbitinije sve su spremne za koritenje. Dovoljno je samo da se postave na formu i da se podese neki osnovni parametri i kontrole se mogu koristiti. U ovom dijelu e se pokazati neki osnovnni elementi grafikog okruenja i kako se koriste u fazi dizajniranja.

Form
Koristi se kao podloga za smjetaj svih ostalih kontrola koji pripadaju jednoj logikoj cjelini i koji se pojavljuju kao zaseban prozor u okviru jednog programa. Kao to je ve ranije reeno u osnovi postoje dvije osnovne vrste formi: - Obini form i - MDI form. U jednom projektu moe da bude samo jedna MDI forma i ona slui iskljuivo kao kontajner za sve ostale forme (forme-djeca). Obina forma posjeduje osobinu MDIChild koja odreuje da li e se posmatrana forma u programu pojavljivati samostalno (MDIChild=False) ili e se pojavljivati unutar MDI Forme (MDIChild=True).

18

Osnove programiranja u Visual Basic-u

Potrebno je napomenuti da se na MDI Formu ne mogu direktno postaviti nikakve kontrole osim: PictureBox-a, Timer-a i kontrole Data. Postavljanje kontrola mogue je samo indirektno koritenjem PictureBox-a u koji se onda mogu postavljati ostale kontrole. Najee se ova tehnika koristi za postavljanje razliitih toolbar-ova na MDI Formu. Osnovna svojstva (properties) koje treba podesiti za ovu vrstu objekta su: - Name, naziv objekta, najbitnija odrednica jer se za pozivanje bilo koje osobine forma u programskom kodu mora koristiti naziv objekta (kontrole). Napomena: Najee se naziv objekta / kontrole sastoji iz dva dijela: 1. prefiksa koji odgovara vrsti kontrole i 2. dijela naziva koji asocira na svrhu kontrole. Standardni prefiks za objekat Form je frm i strogo se preporuuje da se uvijek koristi kod davanja naziva za ovaj objekat. Nastavak u nazivu forma, a koji se moe sastojati i od vie rijei (bez razmaka), trebalo bi da se uvijek definira tako da svaka rije poinje sa prvim velikim slovom, npr frmProracunNaponaLuka. Ovakav nain davanja imena objektima / kontrolama je veoma koristan poslije tokom faze programiranja. Naime, tokom pisanje koda, u situacijama kada se poziva neki objekt / kontrola koritenjem njenog imena, izvodi se uvijek malim slovima, u prethodnom primjeru kodira se frmproracunnaponaluka. Nakon zavretka ispisivanja reda programskog koda, pritiskom na tipku Enter, ukoliko je ispravno ispisano ime objekta / kontrole, Visual Basic automatski pretvara mala u velika slova na mjestima gdje je to ranije odreeno nazivom objekta / kontrole, u prethodnom sluaju slova p, n i l se prevode u P, N i L to omoguava brzu kontrolu korienja imena objekta / kontrole tokom faze pisanje programskog koda. BackColor, podeavanje boje pozadine forma. Standardna je Button Face (&H8000000F&) za obini form, dok je za MDI Form to Application Workspace (&H8000000C&). Ukoliko to namjena programa specifino ne zahtijeva, ne preporuuje se suvie esto mijenjanje boje pozadine pojedinih formi, a pogotovo ne velika arolikost i veliki kontrasti. BorderStyle, podeavanje vrste granine linije forma i naina promjene veliine. Podrazumijevana vrijednost je 2 Sizable koja korisniku omoguava promjenu veliine dimenzija forma. Ostale vrijednosti koje mogu da se koriste: o None bez ikakve granice / granine linije o Fixed Single sa graninom linijom, ali nije mogue da se vri promjena veliine forma. U ovom sluaju kontrolna dugmad za Minimiziranje i Restore / Maksimiziranje nisu dostupna na title traci. o Fixed Dialog, slino kao i Fixed Single o Fixed ToolWindow, slino kao i Fixed Single, uz razliku da ControlBox, sliica lijevo od Captiona, natpisa na title traci, nije vidljiva. o Sizable ToolWindow, za razliku od Fixed ToolWindow-a, mogua je promjena dimenzija forma koritenjem mia. Caption, natis na title traci forma. DrawMode Odreuje nain grafikog prikazivanja na formi. Podrazumijevana vrijednost je 13 Copy Pen.

19

Osnove programiranja u Visual Basic-u

DrawStyle Definira se vrsta linija za grafike objekte. DrawWidth Definira se irina linija grafikih objekata. Font Izbor vrste, boje i veliine koritenog fonta na samoj formi. Height i Width Visina i irina forma. HelpContextID Broj reference u help datoteci. Svako poglavlje u help datotekama posjeduje jedinstveni identifikator ContextID. Prilikom pritiska na tipku F1 trenutno aktivna kontrola ili form (ona kontrola ili form koji u tom trenutku imaju fokus), poziva help datoteku i prikazuje poglavlje koje ima ContextID jednak broju koji se nalazi definiran u osobinama posmatranog objekta / kontrole. Pretpostavlja se da postoji odgovarajua help datoteka, u suprotnom se nita ne dogaa. ControBox, MaxButton i MinButton Odreuje se da li e form da ima ControlBox, sliicu sa opcijama (Restore, Move, Size, Minimize, Maximize i Close) u gornjem lijevom uglu, te opcije za maksimiziranje odnosno minimiziranje forme (sliice u gornjem desnom uglu forme).
Slika 2.1 ControlBox

Moveable svojstvo kojim se odreuje da li korisnik uope moe pomijerati formu. MDIChild Odreuje se da li je forma sastavni dio postojee MDI forme (True) ili se forma pojavljuje kao samostalan objekt van MDI forme - kontejnera. MousePointer Omoguava definiranje pokazivanja mia u trenucima kada se pokaziva nalazi iznad forme. Ukoliko se za svaku kontrolu koja se nalazi na formi ne definiraju posebne vrijednosti ove osobine onda je pokaziva identian iznad forme i iznad kontrola. ScaleMode Odreuje se mjerna jedinica koja e se korititi za form i za sve kontrole na formu. Podrazumijevana mjerna jedinica je Twips, to predstavlja 1/20 dio jednog ina (25.4 mm). ShownInTaskBar Odreuje se da li e se prilikom aktiviranja i prikazivanja forma pojaviti kartica koja oznaava taj form na TaskBar-u. U sluaju kada je forma MDIChild onda se kartica bez obzira na sve ne pojavljuje na TaskBar-u. Left i Top Definira se poloaj forma u odnosu na koordinatni poetak koji polazi iz gornjeg desnog ugla monitora. Visible i Enabled Kontrole kojima se moe onemoguiti prikaz forme (Visible = False) odnosno kojom se moe prikazati forma ili se moe onemoguiti svaki rad sa formom jer postaje neaktivna (Enabled = False) iako je vidljiva.

20

Osnove programiranja u Visual Basic-u

WindowState Omoguava se inicijalni prikaz forme u 0 - normalnom nainu kako je to definisano osobinama Height, Width, Left i Top, odnosno pomou osobine StartUpPosition, 1 - minimiziranu na TaskBar-u ili 2 - maksimiziranu preko cijelog ekrana.

Kontrole
Najbitnija odrednica svake kontrole je njen naziv (Name). Na isti nain kao to je to pokazano u sluaju formova, i kod kontrola se preporuuje slijediti odreena pravila kod davanja imena, prije svega se to odnosi na koritenje odgovarajuih prefiksa. U Tabeli 2.1 date su preporuke za davanje prefiksa za najee koritene kontrole u Visual Basic-u.
Tabela 2.1 Prporuke za koritenje prefiksa u davanju imena kontrolama

Oznaka kontrole

Naziv kontrole ComboBox Check Box Command Button Data Directory List Box Drive List Box File List Box Frame Horizontal Scroll Bar Image Label Line List Box Option Button Picture Box Shape Timer Text Box Vertical Scroll Bar OLE Contqiner

Prefiks cbo chk cmd dat dir drv fil fra hsb img lbl lin lst opt pic shp tmr txt vsb ole

21

Osnove programiranja u Visual Basic-u

Kontrole mogu da budu i indeksirane. To znai da se na jednom formu, za vie, obino kontrola iste vrste, koristi isto ime, pri emu se kontrole razlikuju u osobini Index. Na ovaj nain se moe formirati grupa (niz) kontrola koje se razlikuju samo u brojanoj vrijednosti Index-a to moe biti kasnije tokom faze programiranja veoma korisno, npr. prilikom koritenja u razliitim programskim petljama. Zajednike osobine gotovo za sve kontrole odnose se na definiranje izgleda i poloaja na formu. Za definiranje veliine kontrola podeavaju se svojstva Height (visina) i Width (irina). Podrazumijevana mjerna jedinica u Visual Basicu je twips (dvadeseti dio jednog ina), pa se i vrijednosti za visinu i irinu daju u twips-ovima. U cilju dizjaniranja to profesionalnijeg izgleda potrebno je koristiti u cijelom programu to je mogue standardnije vrijednosti za visine i irine. Kao primjer moe posluiti kontrola CommandButton, koja se najee koristi za potvrdu unosa podataka ili pokretanje odgovarajuih aktivnosti. Dimenzije kontrole bi trebalo da su jednoobrazne u cijelom programu, odnosno na svim formama koje se koriste. U sluaju koritenja mjerne jedinice Twips preporuuje se visina izmeu 350 i 400, a irina izmeu 1000 i 1200. Poloaj na formi se definira osobinama Left i Top. Vrijednost Left definira udaljenost lijevog ruba kontrole u odnosu na lijevi dio forma, dok se pomou vrijednosti Top odreuje udaljenost gorenjeg ruba kontrole od gornjeg ruba forma. Potrebno je biti oprezan sa mijenjanjem vrste, veliine i boje koritenih fontova jer to moe da bude neprofesionalno. Preporuka je da se koriste standardni fontovi kao to je npr. MS Sans Serif, veliine 8. Pomou opsobine TabStop se odreuje da li neka kontrola moe dobiti fokus koritenjem tipke Tab na tastaturi. Podrazumijevana vrijednost ove osobine za sve kontrole je True, to oznaava da svaka kontrola moe da dobije fokus jednostavnim koritenjem tipke Tab. Redoslijed prebacivanja fokusa sa jedne na drugu kontrolu se definie pomou osobine TabInex. Svaka kontrola na jednoj formi mora da ima jedinstvenu brojanu vrijednost ove osobine. Prilikom uitavanja i prikazivanja forme, kontrola sa najniim TabIndex-om, (0 je najmanji broj koji se moe pripisati ovoj osobini), preuzima fokus na sebe. Koritenjem tipke Tab na tastaturi fokus prelazi na slijedeu kontrolu koji ima slijedei redni broj i tako redom, naravno pod uslovom da je osobina TabStop = True. Skrivanje kontrole na formu moe da se omogui koritenjem osobine Visible. Postavljanjem vrijednosti False ove osobine za neku kontrolu na formi omoguava nestajanje kontrole sa forme. Drugi, ee koriteni nain, da se onemogui pristup kontroli je koritenje osobine Enabled. Postavljanjem vrijednosti ove osobine na False kontrola ostaje vidljiva na formi, ali pristup kontroli vie nije mogu, niti pomou mia niti pomou tastature.

Pristupne tipke
Pojedine kontrole koje imaju svojstvo Caption (natpis) mogu iskoristiti svojstvo brzog pristupa, dobijanja fokusa i promjene vrijednosti koritenjem kombinacije ALT tipke i jedne od tipki koja se definira za svaku kontrolu posebno. Primjer kontrola koje imaju osobine Caption su CommandButton, CheckBox i OptionButton.

22

Osnove programiranja u Visual Basic-u

Za omoguavanje ovog brzog pristupa dovoljno je u natpisu (Caption-u) bilo koje od kontrola iskoristiti jedno jedinstveno slovo ispred kojeg se upie znak & (ampersand, and). Na ovaj nain slovo ispred kojeg se upie ampersand, ispisuje se sa crticom ispod. Na primjer u sluaju CommandButton-a sa natpisom OK, ako se eli brzi pristup kombinacijom tipki ALT + O potrebno je u osobini Caption unijeti slijedee: &OK ime se na kontroli ispisuje OK, (podvueno slovo O). Slino vrijedi i u sluaju kreiranja menija o emu e biti rijei kasnije.

Formatiranje
U cilju jednostavnijeg podeavanja poloaja pojedinih kontrola na formu mogu je prikaz zamiljene reetke, Grid-a po cijeloj povrini forma koja omoguuje pomjeranje kontrola u koracima koje odreuje korak reetke. Zamiljena reetka se grafiki predoava mreom taaka koje imaju unaprijed definirana rastojanja pri emu vertikalni i horizontalni razmak taaka ne mora da bude jednak. Opcije za ukljuivanje, iskljuivanje i podeavanje rastojanja reetke je mogue definirati na Tools Options... na kartici General, slika 2.2

Slika 2.2 Podeavanje zamiljene reetke Grid-a

Ukljuivanje / iskljuivanje reetke ostvaruje se preko Check Box- a Show Grid koji se nalazi u okviru Form Grid Settings. Horizonatalno rastojanje taaka reetke se podeava u polju Width, a vertikalno u polju Height. Numerika rastojanja za gustou reetke se zadaju u Twips-ima. Check Box Align Controls to Grid se koristi za forsiranje pomjeranja kontrola prema poloaju taaka reetke, tako da ukoliko se ukljui ova opcija kontrole mogu zauzimati samo poloaje koje odreuje reetka i u skokovima koji odgovaraju rastojanju izmeu pojedinih taaka reetke. Za brzo i jednostavno rasporeivanje kontrola na formi moe uinkovito da pomognu opcije na izborniku Format koje su prikazane na slici 2.3.

23

Osnove programiranja u Visual Basic-u

Slika 2.3 Izbornik Format Veina opcija sa liste prikazane na slici 2.3 ima dodatnu skupinu daljih opcija alata pomou kojih se brzo i efikasno mogu podesiti veliine i poloaj kontrola na formu. U svakom koraku potrebno je prvo da se oznae kontrole na koje se eli primjeniti neki od alata te nakon toga odabrati alat / aktivnost za formatiranje. Oznaavanje kontrola se najbre ostvaruje tako to se grupa kontrola oznai prevlaenjem mia uz pritisnutu lijevu tipku. Opcije Align omoguavaju poravnavanje oznaenih kontrola i to tako da se poravnaju: lijeve strane (Lefts), po vertikalnoj sredini (Centers) i desne strane (Rights), zatim gornji rubovi (Tops), po horizontalnoj srednini (Middles) i donji rubovi (Bottoms), te na kraju mogue je poravnavanje po takama zamiljene reetke (to Grid).

Slika 2.4a Meusobnom poravnavanje kontrola

Opcije Make Same Size omoguavaju brzo podeavanje identinih veliina vie kontrola i to irine (Width), visine (Height) odnosno obje dimenzije (Both).

Slika 2.4b Podeavanje dimenzija vie kontrola

24

Osnove programiranja u Visual Basic-u

Opcije Horizontal i Vertical Spacing omoguavaju podeavanje meusobnog rastojanja izmeu vie oznaenih kontrola. Opcije Make Equal e razmaknuti kontrole tako da su razmaknute meusobno na jednaka rastojanja, Increase i Decrease e poveati odnosno smanjiti meusobno rastojanje za vrijednost definiranu gustinom taaka zamiljene reetke, dok e opcija Remove da ukloni rastojanja izmeu kontrola tako da se poetak jedne kontrole podudara sa krajem druge itd.
Slika 2.4c Podeavanje rastojanja izmeu kontrola

Opcije Center in Form sadre dvije mogunosti Horizontally i Vertically pomou koji se moe kontrola ili vie njih pozicionirati u horizontalni odnosno vertikalni centar forma. Opcije Order omoguavaju hijerarhijski raspored kontrola, stavljanje jedne kontrole na drugu Bring to Front ili obratno Send to Back. Nakon to se kontrole razmjeste na formu u zadovoljavajuem rasporedu,ukljuivanje opcije Lock Controls e onemoguiti sluajno pomjeranje bilo koje kontrole na formu to nekada moe da bude veoma korisno. Opcija se obino koristi na kraju faze formatiranja kada se ne eli vie mijenjati poloaj kontrola.

Podeavanje osobina u fazi rada programa


Sve do sada reeno odnosilo se na podeavanje osobina i formatiranje u tzv. design fazi. Promjena osobina bilo koje kontrole ili forma, pored ovoga, moe da se izvri takoe i tokom faze rada (koritenja) programa (runtime). U ovu svrhu potrebno je da se osobine mijenjaju i podeavaju koritenjem programskog koda. Tokom rada, osobine kontrola se mogu mijenjati posebnim naredbama u programskom kodu. Ovo se postie naredbama koje odgovarajuim svojstvima pridruuju odgovarajue vrijednosti. Principijelno naredna je u obliku: nazivKontrole.osobina = vrijednost Naziv kontrole i osobina se uvijek odvajaju takom.

Izbornici / Meniji
Dodavanje, mijenjanje i podeavanje izbornika / menija na formu se moe lako uraditi koritenjem Menu Editora koji se otvara izborom istoimene opcije na izborniku Tools. Da bi opcija bila dostupna potrebno je da bude aktivan design prikaz forma na kome se ele izgraditi izbornici / meniji. Na slici 2.5 prikazan je prozor Menu Editor-a.

25

Osnove programiranja u Visual Basic-u

Slika 2.5 - Menu Editor

Za dodavanje novog izbornika / menija potrebno je definirati slijedee elemente: Caption - Naziv izbornika / menija odnosno opcije koje se pojavljuje na listi opcija izbornika / menija. Linija razgranienja u listi opcija se formira na nain da se u polje Caption unese crtica "-". Name - Naziv izbornika / menija odnosno opcije. Naziv se koristi samo za pristup event proceduri izbornika / menija u programskom kodu, odnosno za pozivanje kontrole i ne pojavljuje se nigdje na meniju ili opciji menija tokom faze koritenja programa. Index - Omoguava kreiranje grupe izbornika / menija sa istim imenom koje se razlikuju u Indeks-u. Shortcut - Kombinacija tipki za pristup opciji izbornika / menija. Checked - Omoguava pojavljivanje Check Box-a lijevo od naslova opcije u izborniku / meniju. Enabled - Omoguava da se izbornik / meni ili opcija na izborniku / meniju pojavi ali i da bude nedostupan za rad. Visible - Omoguava pojavljivanje odnosno skrivanje izbornika / menija ili opcije na izborniku / meniju. WindowList - Omoguava pojavljivanje u izborniku / meniju otvorenih MDI Child formi u jednoj MDI aplikaciji. Desna Strelica - Pomjera selektovani izbornik / meni desno, odnosno opciju jedan nivo nie u hijerarhijskoj strukturi svaki put kada se klikne na strelicu. Mogue je definirati maksimalno 4 podnivoa u sastavu izbornika / menija. Svaka uvuena stavka predstavlja listu opcija ili pod-menija stavke koja je hijerarhijski manje uvuena i nalazi se iznad nje u listi.

26

Osnove programiranja u Visual Basic-u

Lijeva Strelica - Pomjera selektovani izbornik / meni odnosno opciju jedan nivo vie svaki put kada se klikne na strelicu. Strelica gore - Pomjera selektovani izbornik / meni odnosno opciju jedno mjesto gore, zadrava nivo opcije. Strelica dole - Pomjera selektovani izbornik / meni jedno mjesto dole, zadrava nivo opcije Next - Pomjera selekciju na slijedeu liniju u listi izbornika / menija. Insert - Insertuje slobodnu liniju iznad oznaenog izbornika / menija u listi izbornika / menija Delete - Brie trenutno oznaenu liniju u listi izbornika / menija. U donjem dijelu prozora Menu Editor nalazi se hijerarhijska lista svih definiranih izbornika / menija u takozvanom Menu List-u. Kao primjer pokazat e se izgradnja jednostavnog izbornika / menija (File) sa standardnim opcijama (New, Open, Save, Save As.., Print i Exit). Bit e koritena jedna MDI Forma i dvije forme Test1 i Test2 koje su MDI djeca-forme. Slino kao kod kontrola i objekata i kod davanja imena izbornicima / menijima i opcijama na izbornicima / menijima dobro je slijediti odreenu logiku. Koritenje prefiksa u davanju imena se strogo peporuuje. Pri ovome se preporuuje stavljanje prefiksa men ispred naziva top-level izbornika / menija te prefika mi (menu item) ispred opcija iz liste za svaki top-level izbornik / meni. U listu izbornika / menija su dodane slijedei podaci: - Meni File, sa nazivom menFile. Poloaj izbornika / menija u listi menija je krajnje lijevo i to oznaava da se radi o top-level izborniku / meniju, odnosno izborniku / meniju koji se nalazi na traci sa izbornicima / menijima i koji ima set vlastitih opcija. Opcija WindowList je ukljuena samo za ovaj top level to omoguuje prikaz trenutno otvorenih formova-djece u okviru izbornika / menija tokom faze koritenja programa. Ukoliko nema aktivnih formovadjece lista je prazna. - Opcija New, sa nazivom miNew, te sa ukljuenim Shortcut-om: CTRL+N. - Opcija Open, sa nazivom miOpen, te sa ukljuenim Shortcut-om: CTRL+O. - Linija razgranienja, upisuje se jednostavno crtica "-" u Caption i daje se proizvoljno, jedinstveno ime u polje Name. - Opcija Save, sa nazivom miSave, te sa ukljuenim Shortcut-om: CTRL+S. - Opcija Save As..., sa nazivom miSaveAs, bez Shortcuta-a. - Linija razgranienja, upisuje se jednostavno crtica "-" u Caption i daje se proizvoljno, jedinstveno ime u polje Name. - Opcija Print, sa nazivom miPrint, te sa ukljuenim Shortcut-om: CTRL+P - Linija razgranienja, upisuje se jednostavno crtica "-" u Caption i daje se proizvoljno, jedinstveno ime u polje Name. - Opcija Exit, sa nazivom miExit, te sa ukljuenim Shortcut-om: CTRL+E.

27

Osnove programiranja u Visual Basic-u

Sve opcije u okviru menija, osim top-level menija, su pomaknute za jedno mjesto udesno koritenjem desne strelice i time je oznaena pripadnost opcija meniju ispod koga se hijerarthijski opcije nalaze. Izgled Menu Editor-a, sa podacima podeenim na prethodno objanjeni nain je prikazan na slici 2.6.

Slika 2.6 - Menu Editor za izbornik File

Izbornik / meni File dobijen na prethodno opisani nain prikazan je na slici 2.7.

Slika 2.7 - Izgled izbornika / menija File

28

Osnove programiranja u Visual Basic-u

S obzirom da u programu nije bila otvorena niti jedna forma-dijete to se na izborniku / meniju File nije pojavila lista otvorenih formi-djece. Na slici 2.8 prikazan je izgled izbornika / menija File nakon to su uitane i prikazane dvije forme-djeca (Test1 i Test2). Uoavaju se dodatne opcije u listi, te uz formu Test2 pokazan je check box koji oznaava da je ta forma trenutno aktivna.

Slika 2.8 - Izbornik / meni File sa listom otvorenih prozora

Svaki izbornik / meni i opcija iz liste predstavlja kontrolu na formi. Stoga svaki izbornik / meni i opcija iz liste automatski dobijaju svoje mjesto u listi kontrola, pa je za svaku ovu kontrolu mogue definirati prograsmki kod unutar vlastite event procedure. Izbornik / meni i opcije imaju definiranu samo jednu event proceduru: Click. Unutar ove event procedure potrebno je upisati programski kod koji se izvrava svaki put kada korisnik odabere neku od opcija iz izbornika / menija.

29

Osnove programiranja u Visual Basic-u

3. OSNOVE PISANJA PROGRAMSKOG KODA

Uvod
Nakon planiranja i izrade grafikog okruenja, podeavanja osobina kontrola i formatiranja istih, naredni korak u izradi programa u Visual Basic-u je pisanje programskog koda. Pojedinani dijelovi programskog koda, procedure, u krajnjem odreuju koje sve aktivnosti je mogue izvriti koritenjem programa. Iako je pisanje programskog koda, vjerovatno najzahtjevniji dio projekta, Visual Basic-ove event procedure omoguavaju jednostavnije organiziranje i kontrolu programskog koda.

Prozor za pisanje programskog koda View Code


Dva su najee koritena naina otvaranja prozora za pisanje programskog koda: - Koritenjem Project Explorer-a. Potrebno je prvo oznaiti form u kojem se eli kreirati nova procedura. Nakon izbora forma, potrebno je kliknuti na View Code button u gornjem lijevom uglu Project Explorer-a, kao to je to prikazano na slici 3.1. - Dvostukim klikom na kontolu za koju se eli kreirati nova event procedura (takoe je mogue oznaiti kontrolu i pritisnuti funkcijsku tipku F7)..

Slika 3.1 Aktiviranje prozora za pisanje programskog koda

Prilikom prvog otvaranja prozora za pisanje koda Visual Basic otvara podrazumijevanu (default) event proceduru koja ovisi od odabrane kontrole te automatski dodaje prvu i zadnju liniju programskog koda. Ukoliko ve postoji napisan programski kod unutar neke od event procedura onda se otvara jedna od procedura sa programskim kodom. Kretanje izmeu event

30

Osnove programiranja u Visual Basic-u

procedura se vri jednostavnim odabirom event procedure iz padajue liste koja se nalazi u gornjem desnom uglu prozora za upis programskog koda.

Slika 3.2 Izbor event procedure za kontrolu cmdOK

Na slici 3.2 prikazan je primjer sa event procedurama za kontrolu cmdOK, na formu frmStart, projekta Test, (podaci se mogu uoiti na title bar-u prozora).

Event procedure
Event procedure omoguavaju da program na unaprijed odreeni nain odgovori na aktivnosti koje korisnik programa izvodi. Ako korisnik klikne na komandno dugme, odabere jednu od ponuenih opcija, promjeni postavku ili upie neki podatak, programski kod unutar odgovarajue event procedure odreuje odgovor programa na tu aktivnost korisnika. Poznavajui ovo, mogue je jednostavno iskoristiti mogunosti event procedura za kreiranje programa. Opi koraci koji su neophodni za pisanje programskog koda unutar event procedure su slijedei: - odrediti objekat / kontrolu za koju se eli programirati aktivnost programa, - odrediti dogaaj (event) za koji se oekuje da se dogodi nad posmatranim objektom / kontrolom i - napisati programski kod koji odreuje aktivnost programa kada korisnik prouzroi taj dogaaj. Naziv event procedure za neki odreeni objekat / kontrolu je kombinacija dvije kljune rijei: - naziv objekta / kontrole - naziv koji Visual Basic daje odreenom dogaaju (event-u). Ove dvije kljune rijei su razmaknute donjom crtom ( _ ), pa potpuni naziv event procedure je odreen kao:

31

Osnove programiranja u Visual Basic-u

NazivKontrole_NazivDogaaja Na primjer, neka se na formi nalazi komandno dugme (CommandButton) za potvrdu unosa podataka OK iji naziv je, u skladu sa prethodno usvojenom konvencijom, cmdOK. Osnovna event procedura za ovu kontrolu je Click. Programski kod napisan unutar ove procedure izvrava se ukoliko korisnik tokom izvravanja programa klikne na kontrolu (komandno dugme). Puni naziv event procedure za ovu kontrolu u posmatranom sluaju je: cmdOK_Click.

Ope procedure / funkcije


Pored procedura koje se izvravaju usljed pokretanja nekog dogaaja odnosno izvravanja aktivnosti od strane korisnika (event procedure) unutar jednog forma mogu da se definiraju i ope procedure odnosno funkcije koje se mogu programski pozivati iz bilo koje druge procedure / funkcije. Kreiranje opih procedura i funkcija u okviru jednog forma mogue je ostvariti na dva naina: - pomou prozora Add Procedure... koji se nalazi na izborniku Tools i koji je aktivan samo kada je otvoren prozor za upisivanje programskog koda, slika 3.3. - direktnim upisom procedure u (General) sekciju u prozoru za upisivanje programskog koda, slika 3.4.

Slika 3.3 Dodavanje opih procedura / funkcija Za dodavanje nove ope procedure unutar forma potrebno je odabrati naziv za proceduru koji se upisuje u text-box Name. Kod imenovanja procedura dobro je slijediti princip slian kao kod imenovanja kontrola i objekata te korititi prefikse ispred opisnog naziva procedura. Uobiajeno je da se ispred naziva procedure dodaje prefiks proc, a ispred funkcije fun. Za kreiranje procedure potrebno je u okviru Type odabrati opciju Sub, a za funkciju opciju Function. Ostale dvije vrste procedura koje slue za definiranje novih eventa odnosno dogaaja izlaze iz dosega ovog kratkog uvoda u Visual Basic. U okviru Scope definira se podruje vaenja procedure / funkcije, pri emu su Public procedure dostupne za koritenje na nivou cijelog projekta, dok su procedure oznaene sa Private dostupne samo u matinom formu, tj. mogu se samo pozivati iz drugih procedura unutar istog forma.
32

Osnove programiranja u Visual Basic-u

Puni naziv procedure predstavljen je u obliku: NazivForma.NazivProcedure odnosno NazivForma.NazivFunkcije Pozivanje procedure / funkcije iz druge procedure, event procedure ili funkcije unutar istog forma mogue je koritenjem samo naziva procedure / funkcije bez koritenja naziva forma. Ovo vai za obje vrste i Public i Private procedura / funkcija. Meutim, pozivanje procedure / funkcije koja se nalazi u jednom formu iz nekog drugog forma zahtijeva koritenje punog naziva procedure: NazivForma.NazivProcedure / NazivForma.NazivFunkcije. U ovom sluaju je mogue pozvati samo Public procedure / funkcije.

Slika 3.4 Sekcija General

Kreiranje procedura odnosno funkcija mogue je i manuelnim unosom naziva procedure u sekciji (General) (Declarations). Na primjer, ako se eli dodati procedura procTest, potrebno je upisati slijedee: Public Sub procTest te nakon toga pritisnuti tipku Enter. Visual Basic e da doda otvorenu i zatvorenu zagradu () nakon naziva procedure te e dodati End Sub liniju programskog koda u drugoj liniji ispod naziva procedure. Dobit e se slijedee: Public Sub procTest() End Sub Programski kod je potrebno, kao to je ve reeno, dodati izmeu naziva procedure i linije End Sub koja oznaava kraj procedure. U sluaju dodavanja funkcije potrebno je umjesto rijei Sub koristiti rije Function, tada e se umjesto End Sub pojaviti End Function.

33

Osnove programiranja u Visual Basic-u

U lijevom gornjem uglu prozora za unos programskog koda nalazi se padajua lista u kojoj se nalazi lista svih postojeih kontrola na formu, objekt Form i sekcija (General). Svaka kontrola je predstavljena svojim imenom koji je prethodno tokom faze dizajniranja zadan u okviru osobina svake od kontrola koritenih na formu. Potrebno je uoiti da se u listi objekat form, iako posjeduje vlastito ime, odreeno tokom faze dizajniranja objekata, uvijek pojavljuje samo kao Form, a nikada pod definiranim imenom. Inae se unutar objekta form moe napraviti refenenca na sam objekt koritenjem kljune rijei ME. Izborom bilo koje kontrole, ili form-a kao objekta, u desnom gornjem uglu formira se spisak moguih dogaaja (eventa). Za svaku vrstu kontrole postoji jedinstven, ali donekle razliit spisak moguih eventa. Neki od event-a se pojavljuju u vie vrsta kontrola dok su neki specifini za odreene kontrole. Naprimjer, za objekt Form, spoecifine event procedure su Load i Unload koje se izvravaju prilikom uitavanja odnosno zatvaranja forma. Sekcija (General) slui za dvije namjene: - za smjetaj varijabli koje imaju podruje vanosti u cijelom podruju programskog koda u okviru form-u, u okviru sekcije (Declarations). - za smjetaj opih procedura / funkcija. Izborom sekcije (General) u listi u desnom gornjem uglu formira se spisak svih kreiranih opih procedura / funkcija te sekcija (Declarations) koja sadri listu varijabli koje su deklarirane za koritenje na nivou programskog modula aktivnog forma.

Parametarske procedure
U nazivima opih procedura odnosno funkcija, kako se to moglo vidjeti, dodaju se na kraju naziva procedure / funkcije zagrade (). Ukoliko unutar zagrada nema nita, tj u deklaraciji procedure / funkcije postoji samo otvorena i zatvorena zagrada, radi se o procedurama bez parametara odnosnu funkcijama bez parametara. Definiranjem parametara unutar zagrada definiraju se tzv. parametarske procedure odnosno funkcije. Uobiajeni nain proslijeivanja parametata u Visual Basicu, slino kao i u drugim programskim jezicima, jeste njihovo nizanje u popis u kojem su meusobno odvojeni zarezima. Na primjer, ako se eli kreirati javna procedura u kojoj se ele koristiti vrijednosti osnovnih RGB boja onda bi zaglavlje procedure moglo da izgleda ovako: Public Sub procBojaPozadine(paramRed, paramGreen, paramBlue) Parametri se mogu definirati i kojeg su tipa, a ako se ostavi bez definicije tipa onda se smatra da su tipa Variant. O tipovima varijabli bit e rijei kasnije. Uz pretpostavku da pomenuta procedura podeava boju objekta picTest na formu koji ima naziv FormA, onda bi kompletna procedura mogla da ima slijdei izgled: Public Sub procBojaPozadine(paramRed, paramGreen, paramBlue) FormA.picTest.BackColor=RGB(paramRed, paramGreen, paramBlue) End Sub

34

Osnove programiranja u Visual Basic-u

Pozivanje procedure zahtijeva definiranje vrijednosti parametara koji figuriraju u proceduri. U prethodnom primjeru svaki puta kada se pozove procedura procBojaPozadine potrebno je da se proslijede numerike vrijednosti koje se pridruuju parametrima definiranim u nazivu funkcije i to ba tim redom, npr. procBojaPozadine 255, 0, 0 Ova naredba e da izvri promjenu boje pozadine kontrole picTest u crveno. Pozivanjem procedure, proslijeivanjem samo vrijednosti, zadata je vrijednost parametra paramRed od 255, dok su parametri paramGreen i paramBlue dobili vrijednosti 0. Prilikom pozivanja procedure, na ovaj nain, uvijek mora da se pazi na poredak parametara i proslijeenih vrijednosti i mora da se proslijedi tano onoliko vrijednosti koliko ima parametara. Postoj nain da se i ne pazi na poredak parametara prilikom pozivanja procedure / funkcije. Taj nain zahtijeva de se eksplicitno poveu nazivi parametara i vrijednosti koja se proslijeuje pojedinom parametru. U prethodnom primjeru isti uinak bi se dobio slijedeim pozivom procedure: procBojaPozadine paramGreen:=0, paramBlue:=0, paramRed:=255 Na ovaj nain nije bitan poredak (parametar paramRed iako je u deklaraciji procedure nalazi na prvom mjestu u pozivu procedure nalazi se na zadnjem) jer se prilikom pozivanja procedure eksplicitno zadaju vrijednosti parametara. Potrebno je i dalje da se za svaki parametar zadaju vrijednosti inae e nastupiti greka. Ovdje se dolazi do situacije da je potrebno da se omogui kreiraje parametarskih procedura / funkcija koje mogu biti definirane na nain da nije uvijek neophodno da se proslijede vrijednosti za sve paramete. Ovakve procedure / funkcije je mogue definirati i u tom sluaju se radi o procedurama / funkcijama sa neobaveznim (Optional) parametrima. Primjer deklaracija parametarske procedure sa neobaveznim parametrima bi bila slijdea: Public Sub procBojaPozadine(Optional paramRed, Optional paramGreen, Optional paramBlue) Deklaracijom procedure na ovaj nain omogueno je da se proceduri proslijede vrijednosti za samo neki od parametara. Prvo pravilo je da se modifikator Optional moe proslijediti samo parametrima tipa Variant. Drugo pravilo kae da se u deklaraciji procedure ili funkcije u kojoj se nalaze neobavezni parametri oni se moraju u nizu pojavljivati na kraju. Dakle nije mogue deklariranje obaveznog parametra nakon neobaveznog. Jo dvije kljune rijei mogu da se nau u parametarskim listama: ByVal i ByRef. Ove dvije kljune rijei odreuju mehanizam proslijeivanja vrijednosti parametrima ukoliko se proslijeuju vrijednosti varijabli u pozivu procedure. Ukoliko se ispred parametra iskoristi kljuna rije ByVal, parametar procedure e dobiti samo vrijednost varijable u tom trenutku. Svaka promjena parametra unutar procedure nee imati uticaja na vrijednost varijable koja je pridruena parametru prilikom poziva procedure / funkcije. Kada se kontrola izvravanja vrati nazad iz procedure / funkcije varijabla ima istu vrijednost koju je imala prilikom pozivanja procedure / funkcije.

35

Osnove programiranja u Visual Basic-u

Nasuprot ovome, ako se iskoristi kljuna rije ByRef u deklaraciji procedure / funkcije onda e se, u sluaju proslijeivanja vrijednosti varijable parametru ispred kojeg je iskoritena ova kljuna rije stvari bitno promijeniti. Svaka promjena vrijednosti posmatranog parametra uzrokovat e i direktnu promjenu vrijednosti varijable koja je proslijedila inicijalnu vrijednost tom parametru. Nakon zavretka procedure / funkcije varijabla e imati vrijednost koju je imao parametar na kraju izvravanja procedure a koja moe da se bitno razlikuje od vrijednosti prilikom poziva procedure.

Funkcije
Kao i parametarske procedure i funkcije mogu da sadravaju parametre: Function NazivFunkcije (paramA as TypeA, paramB as TypeB...) AS TipFunkcije 'Naredbe u okviru prorauna vrijednosti funkcije End Function Funkcija moe biti deklarirana, s obzirom na njen doseg (scope) kao javna (Public) ili lokalna (Private) u ovisnosti od potrebe da se funkcija koristi u okviru cijelog projekta ili samo u jednom modulu. Funkcija ima osobinu koja je bitno razlikuje od procedure: ona izraunava odreenu vrijednost, poprima tu vrijednost te je pridruuje varijabli iz koje je funkcija pozvana. Funkcija vraa tip onakav kakav je zadan u deklaraciji funkcije. Ako se u deklaraciji funkcije izostavi naglaavanje tipa funkcije onda funkcija vraa vrijednost tipa Variant. Programski kod unutar funkcije obino negdje pri kraju sadri naredbu u kojoj se na lijevoj strani nalazi naziv funkcije, a na desnoj izraz koji moe poprimiti odgovarajuu vrijednost i koji je tipa kao i tip funkcije. Na tom mjestu se i izraunava dakle vrijednost funkcije, na primjer> Private Function NazivFunkcije(paramA As Byte) As Integer ... Programski kod ... NazivFunkcije = izraunatiIzraz End Function Podatke funkcija prima preko argumenata koji su nabrojani u zaglavlju deklaracije funkcije. Na ovaj nain funkcije predstavljaju mono orue u rukama programera jer je potrebno da se samo jednom napie programski kod koji se sa razliitim parametrima poziva i time se dobijaju odgovarajui odgovori odnosno vrijednosti od strane funkcije za rayliite ulazne podatke. U Visual Basic-u funkcija se poziva preko izraza u kojem se na lijevoj strani nalazi odgovarajua varijabla a na desnoj funkcija sa listom parametara koji su najee varijable, mogu biti i fiksne vrijednosti, ali uvijek moraju biti istog tipa kao to je to u naglaeno u deklaraciji funkcije: varijablaA = NazivFunkcije (argA, argB,...)

36

Osnove programiranja u Visual Basic-u

Lista argumenata koji se proslijeuju funkciji, za razliku kada se poziva parametarska procedura, moraju biti zatvoreni unutar zagrada. Funkcija se moe pozvati i na nain da se samo napie naziv funkcije koja se poziva, dakle bez pridruivanja vrijednosti, nekoj varijabli, koju funkcija vraa. U tom sluaju izvrava se programski kod unutar funkcija, a izraunata vrijednost se odbacuje. Meutim, ovo je sasvim neprikladan nain koritenja funkcija jer je ona prvenstveno namijenjena da izrauna vrijednost za odreene parametre i tu vrijednost vrati varijabli. U ovakvom sluaju potrebno je koristiti proceduru umjesto funkcije.

Naini prikaza procedura / funkcija


Prozor za prikaz programskog koda moe da prikazuje procedure u dva naina: - Procedure View nain u kome se prikazuje samo jedna procedura u jednom trenutku. Koritenjem tipki PageDown odnosno PageUp mogue je da se kree od jedne do druge procedure unutar aktivnog forma. - Full Module View, nain u kome se u kontinuitetu prikazuju sve postojee procedure unutar jednog forma. Na slici 3.5 prikazan je primjer izgleda prozora za ovaj nain prikaza. Mogu se uoiti tri event procedure: o cmdOK_Click za komandno dugme cmdOK i event proceduru - dogaaj koji nastupa kada korisnik klikne na dugme; o Form_Load za form frmStart i to za event proceduru dogaaj koja se izvrava kada se uita form te o txtData_Change za polje za unos podataka txtData i to za event proceduru - dogaaj koja se izvrava svaki put kada korisnik promijeni neki podatak u kontroli.

Slika 3.5 Full module view

Izmeu procedura moe postojati horizontalna linija koja vizualno dijeli pojedine procedure, ako je ukljuena opcija Procedure Separator na kartici Editor u prozoru Options koji se nalazi na izborniku Tools, slika 3.6. Ovdje se takoe moe definirati i podrazumijevani nain prikaza procedura. Ukljuivanjem opcije Default to Full Module View za svaki form e podrazumijevana opcija prikaza biti Full Module View.
37

Osnove programiranja u Visual Basic-u

Slika 3.6 Tools Options: Ukljuivanje opcija za prikaz

Prelaz izmeu jednog od dva spomenuta naina prikaza procedura mogue je i koritenjem preklopki u donjem lijevom uglu prozora za pisanje koda.

Neke vaniji dogaaji


Kao to je ve reeno event procedure se imenuju po principu NazivKontrole_NazivDogaaja. Pri ovome je potrebno obratiti panju na injenicu da ako se nakon upisivanja programskog koda unutar neke od event procedura promijeni naziv kontrole, Visual Basic vie nee raspoznati prethodno napisane event procedure za tu kontrolu. Dakle, promjenom naziva kontrole nee se automatski promijeniti naziv event procedure. Sreom, postojee procedure nee biti obrisane, ali e se podrazumijevati da se radi o opim, a ne o event procedurama pa je potrebno iskopirati postojei programski kod nazad unutar novoimenovane event procedure. Vaniji dogaaji (event-i) koji je potrebno poznavati i koji se esto koriste kod objekta Form su slijedei: - Load, dogaaj koji se izvrava svaki put kada se unutar programa pozove prikaz forma. Dogaaj se izvrava u trenutku uitavanja podataka u memopriju raunara o formu, prije negom to se prozor kojim je objekat grafiki predstavlje uope pojavi na ekranu. - Activate, dogaaj koji nastupa nakon dogaaja Load, tj. nakon to se podaci o formu uitaju u memoriju i kada se grafiki prozor koji predstavlja form pojavi na ekranu. - Unload, dogaaj koji se aktivira u trenutku brisanja podataka o formu iz memorije raunara, ali prije nego to je form nestao sa ekrana. - Terminate, dogaaj nastupa nakon dogaaja Unload i to u trenutku kada form nestane sa ekrana.

38

Osnove programiranja u Visual Basic-u

Za kontrolu tipa CommandButton najvaniji dogaaj za koji je potrebno napisati odgovarajui programski kod je: - Click, Dogaaj nastupa svaki put kada korisnik klikne na kontrolu. Za kontrolu tipa TextBox koja slui za unos podataka od strane korisnika vani dogaaji su: - Change, koji nastupa svaki put kada se promijeni neki podatak u kontroli. Potrebno je biti oprezan sa koritenjem jer se event procedura aktivira prilikom promjene samo jednog alfanumerikog znaka. - Validate, dogaaj koji je koristan u fazi ispitivanja ispravnosti unesenog podatka u kontroli. Parametar Cancel se koristi da se sprijei unos ili promjena koji ne odgovaraju postavkama za datu kontrolu. Davanje vrijednosti Cancel=True ukoliko unos nije ispravan onemoguava dalji rad u programu i zahtijeva ispravku pogreno unesenog podatka. - KeyDown, dogaaj koji se aktivira pritiskom na tipku tastature. Mogue je koristiti KeyCode broj za odabir aktivnosti u ovisnosti od pritisnute tipke. Parametar Shift se moe iskoristit za provjeru da li je pritisnuta tipka Shift, ako je Shift=1, odnosno da li je pritisnuta tipka Ctrl, ako je parametar Shift=2. - KeyPress, slino kao o KeyDown, aktivira se pritiskom tipke na tastaturi. - KeyUp, isto kao i KeyDown samo se aktivira nakon to se otpusti pritisnuta tipka na tastaturi. .Za kontrolu tipa Picture koja se najee koristi za grafike prikaze interesantna su tri dogaaja koja nastaju koritenjem mia i tipki na miu: - MouseDown je dogaaj koji se pokree pritiskom tipke mia, MouseMove nastupa uvijek tokom pomicanja mia nad kontrolom dok event procedura MouseUp nastupa otputanjem tipke na miu. U svakoj od ovih event procedura mogue je pomou parametara kontrolisati: o Da li je pritisnuta lijeva ili desna tipka mia, za to se koristi parametar Button. Vrijednost ovog parametra od 1 odreuje lijevu tipku mia, dok 2 odreuje desnu. o Da li je pritisnuta tipka Shift odnosno tipka Control (Ctrl) a to se moe odrediti pomou parametra Shift koji poprima vrijednost 1 za pritisnutu tipku Shift i 2 za pritisnutu tipku Control (Ctrl). o X i Y koordinate na kojima se nalazi pokaziva mia. Pri ovome se razmjera odreuje na osnovu vrijednosti osobine ScaleMode, najee u Twips-ovima. Pri ovome koordinatni poetak polazi iz gornjeg desnog ugla to znai da X koordinata raste od lijeve ka desnoj strani PictureBox-a dok Y koordinata raste od gornje prema donjoj strani kontrole.

39

Osnove programiranja u Visual Basic-u

Message i Input box


esto je potrebno prikazati razliite poruke korisniku tokom faze koritenja programa. Da se ne bi kreirao poseban form sa porukom Visual Basic ima ugraenu zgodnu i veoma korisnu osobinu: prozor za poruke, message box, (msgbox). Pozivanje prozora sa porukama je veoma jednostavno. U svom najjednostavnijem obliku sintaksa je slijedea: MsgBox Tekst poruke za korisnika! Na ekranu e se prikazati prozor sa porukom prikazan na slici 3.7. Pored proslijeivanja teksta poruke mogue je takoe upravljati i sa prikazom komandnih dugmadi (OK, Cancel, Yes, No...) te sa prikazom sliica koje odgovaraju vrsti poruke: informacija, upozorenje ili pak kritina greka.

Slika 3.7 Message box

Neto malo komplikovanija sintaksa naredbe za prozor sa porukama je slijedea: MsgBox Tekst poruke za korisnika!, Dugme1+Dugme2+Sliica Visual Basic nudi nekoliko vrsta dugmadi koja se mogu nai na prozoru sa porukama kao to su: OK (vbOKOnly), OK i Cancel (vbOKCancel), Yes i No (vbYesNo) itd. Isto tako mogue je definirati prozor sa informativnom porukom dodajui sliicu koja simbolizuje informaciju, dodajui u sintaksu poruke (vbInformation), upozorenje (vbExclamation) odnosno kritinu pogreku (vbCritical). Na primjer, sintaksa poruke u gornjem sluaju sa dugmadima OK i Cancel te sa sliicom koja simbolizuje informaciju bi bila slijedea: MsgBox Tekst poruke za korisnika!, vbOKCancel+vbInformation Prozor koji se prikazuje na osnovu gore napisane komande je prikazan na slici 3.8.

Slika 3.8 Message box

Trei, opcionalni parametar koji se moe proslijediti prilikom pozivanja message box-a je naslov koji se ispisuje na naslovnoj traci, title bar-u, prozora za poruke. U ovom sluaju sintaksa za message-box je slijedea:

40

Osnove programiranja u Visual Basic-u

MsgBox Tekst poruke za korisnika!, vbOKCancel+vbInformation, "Test" Ukoliko se ne unese trei parametar za title bar onda se na message box-u ispisuje naziv projekta (programa) koji se zadaje u Project Properties-u. Prozora za poruke moe se koristiti i za traenje odluke od strane korisnika za dalje aktivnosti. U sluaju kada se na prozoru nalazi vie od jednog dugmeta mogue je odrediti koje dugme je pritisnuto od strane korisnika, odnosno koju odluku je korisnik odabrao. Pritiskom na bilo koje ponueno dugme prozor se zatvara, a message box, slino kao i funkcija, vraa vrijednost koja ovisi od pritisnutog dugmeta. Vrijednost koju vrati message box moe se pridruiti nekoj varijabli te se na osnovu vrijednosti te varijable moe dalje odluiti smjer izvravanja programa. Sintaksa je slijedea: msgResponse = Msgbox ("Poruka",vbYesNo + vbQuestion) U primjeru je sa msgResponse varijabla koja poprima vrijednost u ovisnosti od toga koje dugme je kliknuto na message box-u, Yes ili No u datom primjeru. Za ispitivanje se mogu koristiti konstante vbYes odnosno vbNo. U Tabeli su date vrijednosti koje funkcija MsgBox poprima u ovisnosti od pritisnutog dugmeta. U sluaju koritenja message box-a kao funkcije svi parametri moraju biti unutar zagrada.
Tabela 3.1 - Vrijednosti funkcije msgbox

Konstanta vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo

Vrijednost 1 2 3 4 5 6 7

Dugme OK Cancel Abort Retry Ignore Yes No

Input Box se esto moe iskoristiti za upis odreenog podatka od strane korisnika te pridruivanje te vrijednosti varijabli. Sintaksa komande za InputBox je slina sintaksi koja se koristi kod message box-a: inputData = InputBox "Tekst poruke","Naslov", inicijalnaVrijednost Prvi parametar ("Tekst poruke") se ispisuje na samom prozoru i slui da se korisniku objasni koja se aktivnost oekuje od njega. Parametar "Naslov" odreuje ispis na naslovnoj traci (title bar-u) dok se sa parametrom inicijalnaVrijednost nudi vrijednost koja se prilikom pojavljivanja InputBox-a pojavljuje u polju za upis podatka. Primjer prozora tipa InputBox koji se pojavljuje usljed naredbe: InputBox "Upisite vrijednost", "Podatak", 50 prikazan je na slici 3.9.

41

Osnove programiranja u Visual Basic-u

Slika 3.9 - Input Box

Vrijednost koja se upie u polje pridruuje se varijabli u naredbi za pozivanje InputBox-a, na primjer u sluaju naredbe: vrijednostX = InputBox "Upisite vrijednost", "Podatak", 50 vrijednost koju korisnik upie pridruuje se varijabli vrijednostX.

Provjera sintakse
Tokom faze pisanja programskog koda Viual basic editor automatski provjerava sintaksu u svakoj liniji koda. Sintaksa, u programerskom smislu, se moe definirati kao skup osnovnih gramatikih pravila programskog jezika. To je format koji Visual Basic oekuje da bude potovan u svakoj liniji programskog koda. Ako Visual Basic pronae da neto nije u redu u liniji programskog koda, pojavit e se dva neovisna dogaaja koja e sugerirati greku: 1. Linija programskog koda koja je pogreno napisana bit e prikazana crvenom bojom. 2. Prozor sa porukom o greci e da se pojavi na ekranu, ukratko objanjavajui u emu je problem. Koristan nain rjeavanja problema usljed upisivanja pogrene sintakse jeste koritenje Visual Basic Help-a. Zgodno je to se pomo moe pozvati samo sa jednim klikom. Potrebno je da se kursor postavi unutar kljune rijei koja se nalazi u liniji programskog koda sa grekom te da se pritisne funkcijska tipka F1. Visual basic prikazuje tekst u kome se objanjava ispravna sintaksa za tu kljunu rije. Ispravnost sintakse se takoe moe pratiti tokom pisanja koda na nain da se kljune rijei i nazivi varijabli piu malim slovima. Nakon zavretka pisanja linije programskog koda pritiskom na tipku Enter Visual Basic provjerava ispravnost koritene sintakse kao i korektno ispisivanje malih i velikih slova u kljunim rijeima i nazivima varijabli. Sve kljune rijei i tipovi varijabli se ispisuju u plavoj boji sa prvim velikim slovom. U cilju provjere ispravnog upisivanja naziva varijabli, a pogotovo ako se daju dua opisna imena varijablama, obino sastavljena od dvije ili vie rijei, potrebno je da se prva slovo svake rijei u deklaraciji varijable definira sa velikim slovom. Nakom pritiska na tipku Enter na kraju linije programskog koda, bivaju od strane Visual Basic-a pretvorena mala slova u velika, na isti nain kao to je to definirano u deklaraciji varijable.

42

Osnove programiranja u Visual Basic-u

Auto Member liste


Prilikom pisanja programskog koda esto e se desiti da se pojavljuje lista sa opcijama koje se mogu izabrati u datom trenutku. Na osnovu koritenih kljunih rijei u liniji programskog koda Visual Basic odreuje koje dalje kljune rijei mogu da se nau u toj liniji pa nudi listu moguih opcija. Lista moguih opcija se sastoji od kljunih rijei koje mogu da se nau na tom mjestu, tipova varijabli, osobina itd. Ova opcija je veoma korisna prilikom pisanja programskog koda jer se automatski moe pratiti ispravnost koritene sintakse. Da bi se pojavljivala lista opcija potrebno je da se ukljui opcija Auto List Members na kartici Editor, okvir Code Settings, u prozoru Options koji se nalazi na izborniku Tools, slika 3.6.

Duge linije programskog koda


Jo jedna vana odlika Visual Basic editora je da se esto duge linije programskog koda mogu podijeliti u vie, kraih linija koda. Da bi se to ostvarilo potrebno je definirati prelaz sa jedne na drugu liniju koda. To se ostvaruje koritenjem donje crte (underscore character-a) (_) na kraju linije koda za koju se eli nastaviti pisanje u novoj liniji. Na kraju svake linije koda potrebno je koristiti ovaj znak za prelazak na novu liniju koda. Ovo, pored lakeg pregleda programskog koda u Visual Basic Editoru, takoe moe biti korisno za potrebe tampanja programskog koda jer omoguava mnogo bolju itljivost na tampanoj verziji.

43

Osnove programiranja u Visual Basic-u

4. VARIJABLE

Deklaracije varijbli
Prije koritenja bilo koje varijable u programskom kodu preporuka je da se varijabla eksplicitno deklarira. Kontrola deklariranja varijabli je mogua koritenjem naredbe OPTION EXPLICIT. Ukoliko se ova naredba nalazi u sastavu forma ili modula onda se unutar tog forma ili modula moraju deklarirati sve varijable koje se koriste. Mogue je od Visual Basica zatraiti da u svaki novi form ili modul automatski ubacuje naredbu OPTION EXPLICIT. U izborniku Tools potrebno je odabrati opciju Options, te na kartici Editor ukljuiti opciju Require Variable Declaration.

Slika 4.1 Prozor Option Kartica Editor

Deklariranje varijabli se izvodi pomou tri klune rijei u Visual Basicu: PUBLIC, PRIVATE i DIM. Prema samom imenu PUBLIC i PRIVATE moe se zakljuiti i osnovna razlika izmeu ovih dvaju kljunih rijei. PUBLIC se koristi za deklariranje varijabli ije se koritenje namjenjuje unutar cijelog projekta / programa, dok se rije PRIVATE koristi za deklariranje varijabli ije je koritenje potrebno samo unutar forma ili modula u kojem je varijabla i deklarirana. Pri

44

Osnove programiranja u Visual Basic-u

ovome se varijable koje su namijenjene za koritenje u cijelom projektu / programu, tzv. javne (public) varijable, deklariraju unutar modula dok se unutar formova deklariraju PRIVATE varijable, tj. one varijable koje se koriste samo unutar dotinog forma. U oba sluaja varijable se deklariraju u okviru sekcije (General) (Declarations) na nain: PUBLIC varijablaX odnosno PRIVATE varijablaX

Tipovi varijabli
U gornjem primjeru nije definiran tip varijable pa se podrazumijeva da je varijablaX tzv. variant tipa. Variant varijabla moe sadravati bilo koju vrstu podatka, broj, tekst, objekt itd. Pomou posebnih funkcija je mogue odrediti tip varijable koji je pohranjen u variant varijabli, a tip variant varijable se mijenja prilikom pridruivanja bilo kojeg tipa podatka. Dakle, potrebno je zapamtiti da ako eksplicitno nije definirano kojem tipu varijable pripada deklarirana varijabla onda je ona tipa variant. Ukoliko je mogue unaprijed odrediti tip varijable potrebno je u deklaraciji varijable naglasiti tip varijable. Kao to e se kasnije vidjeti definiranje tipa varijable je korisno jer Visual Basic na taj nain efikasnije moe da upravlja memorijskim prostorom za smjetaj varijabli. Tip varijant zahtijeva uvijek vei memorijski prostor od varijable kojoj je eksplicitno zadat tip. U sluaju poznatog tipa, nain deklaracije varijable je slijedei: PUBLIC varijablaX AS Tip odnosno PRIVATE varijablaX AS Tip pri emu varijable mogu imati tipove koji su prikazani u Tabeli 4.1.
Tabela 4.1

Tip varijable

Byte Boolean Integer Long Single

Prostor koji zauzima (Byte) 1 2 2 4 4

Vrijednosti koje moe poprimiti

Double

0 do 255 Tano (True) ili Netano (False) Od -32,768 do 32,767 Od -2,147,483,648 do 2,147,483,647 Od -3.402823 . 1038 do -1.401298 . 10-45 za negativne vrijednosti te od 1.401298 . 10-45 do 3.402823 . 1038 za pozitivne vrijednosti Od -1.79769313486232 . 10308 do -4.94065645841247 . 10-324 za negativne vrijednosti te od 4.94065645841247 .

45

Osnove programiranja u Visual Basic-u

Currency Decimal

8 14

Date Object String konstantne duine String promjenljive duine Variant (numeric) Variant (string)

8 4 Duina niza (broj koritenih znakova) 10 bajtova + duina niza 16 22+ string length

10-324 do 1.79769313486232 . 10308 za pozitivne vrijednosti Od 922,337,203,685,477.5808 do 922,337,203,685,477.5807 Bez decimalnih mjesta: +/-79,228,162,514,264,337,593,543,950,335 Sa 28 decimalnih mjesta: +/- 7.9228162514264337593543950335 Najmanji mogui broj: +/-0.0000000000000000000000000001 1. Januar 100. do 31. Decembar 9999. Bilo koji objekt Od 1 to priblino 65,400 znakova

Duina alfanumerikog niza se moe kretati od 0 do priblino 2 milijarde znakova. Bilo koja numerika vrijednost do vrijednosti koju moe imati tip Double. Isti rasponi kao u sluaju niza (string-a) promjenljive duine.

DIM kljuna rije


Deklariranje varijabli je mogue i koritenjem kljune rijei DIM. U ovisnositi od mjesta gdje je varijabla deklarirana ovisi i podruje definiranosti vaenja varijable: ako je definirana u sekciji (Declarations) varijabla vai u svim procedurama dotinog modula, a ako je definirana unutar procedure ili funkcije onda vai samo u toj proceduri odnosno funkciji. Ovo je znaajna odlika kljune rijei DIM u odnosu na kljune rijei PUBLIC i PRIVATE, jer se varijable pomou kljune rijei DIM mogu deklarirati i na nivou procedure odnosno funkcije. Nain deklariranja je identian kao i kod PUBLIC i PRIVATE, pa za variant tip varijable glasi DIM varijablaX odnosno za definirati tip: DIM varijablaX AS Tip

Nazivi varijabli
I kod davanja imena varijablama postoje preporuke kao to je to sluaj kod imenovanja objekata i kontrola. Postoji samo pravilo da naziv varijable mora da zapoinje sa slovom. Nekada se je u raznim varijantama BASIC-a koristio princip sufiksa u oznaavanju tipa varijabli, pa se tako varijablama tipa Integer dodavao sufix % (procenat), varijablama tipa

46

Osnove programiranja u Visual Basic-u

Single ! (usklinik), varijablama tipa String $ (dolar) itd. Ovaj nain se ne koristi kod Visual Basica, ali isto tako niti nain davanja prefiksa nije suvie esto koriten nit se strogo preporuuje. Najee ostaje na programeru da odabere najbolji nain deklariranja varijabli koji je dovoljno jasan. Isto tako se u (Declarations) sekciji mogu uz deklariracije varijabli upisati popratni komentari koji opisuju vrstu i namjenu varijabli. Komentari se u Visual Basicu upisuju nakon znaka jednostrukog apostrofa ('). Nakon ovoga znaka Visual Basic ne provjerava sintaksu niti koristi ita to je napisano. Preporuuje se umetanje komentara u svim dijelovima programskog koda jer to omoguava laku itljivost i razumljivost, ne samo za druge osobe nego esto i za samog programera. Visual Basic, za razliku od prijanjih varijanti obinog Basica nema ogranienja u duini naziva varijable to omoguava davanje naziva varijablama koje mogu biti sastavljene od vie rijei i koje direktno opisuju svrhu varijable. Pri ovome je preporuka da se u nazivu varijabli sa vie rijei svako prvo slovo u rijei pie velikim slovom. Napomenuti je da nisu dozvoljeni razmaci u imenima varijabli.

Dodjeljivanje vrijednosti varijablama


Naredbom jednakosti, koja sa lijeve strane ima naziv varijable, a sa desne, izraz koji se moe izraunati u tom trenutku ili konkretnu vrijednost, vri se dodjeljivanje vrijednosti varijablama. nazivVarijable = vrijednost odnosno nazivVarijable = izraz U sluaju kada se sa desne strane nalazi izraz, taj izraz se moe pojaviti u bilo kojem formatu koji moe poprimiti vrijednost koja odgovara tipu varijable sa lijeve strane. Najjednostavniji primjer je kada se varijabli koja je tipa Byte, Integer, Long, Single ili Double, dakle jedan od numerikih tipova, pridrui konkretna numerika vrijednost, npr: brojKoraka = 10 Prilikom pridruivanja vrijednosti varijablama potrebno je voditi rauna o kojem se tipu varijable radi te da li vrijednost koja se pridruuje pripada podruju definiranoti tipa varijable. Na primjer, pridruivanje broja veeg od 32,767 varijabli tipa Integer rezultirat e u pogreci, jer je 32,767 najvei pozitivan broj koji se varijabli tipa Integer moe dodijeliti. Pridruivanje varijablama tipa String vri se na slijedei nain: tekstPoruke = Pogreka! Unijeli ste pogrean broj! Primjer pridruivanja vrijednosti varijablama koritenjem izraza moe biti slijedei: brojKoraka = pocetniKorak + 1000 * vremenskiKorak U ovom primjeru se na osnovu vrijednosti varijabli pocetniKorak i vremenskiKorak izraunava vrijednost izraza sa lijve strane i ta se vrijednost pridruuje varijabli brojKoraka.

47

Osnove programiranja u Visual Basic-u

U izrazu na desnoj strani moe da se pojavi i sama varijabla kojoj se izraunava nova vrijednost. Ovakav izraz je u matematikom pogledu nemogu ali je u programerskoim smislu sasvim normalan i vie nego esto se koristi, na primjer: brojKoraka = brojKoraka + 1 Nakon ove naredbe varijabla e brojKoraka e imati vrijednost koja je za jedan vea od vrijednosti mkoju je varijabla imala proje naredbe. U nekim starijim verzijama Basica naredba pridruivanja je uvijek u sebi ukljuivala kljunu rije LET, pa je naredba pridruivanja imala ovakav oblik: LET nazivVarijable = vrijednost odnosno LET nazivVarijable = izraz

Inicijaliziranje varijabli
Jedna od prvih stvari o kojima se mora voditi rauna prilikom pokretanja programa je da li varijable sa kojima e se raditi u programu treba da imaju neke inicijalne vrijednosti. Da bi se ovo ostvarilo potrebno je prilikom pokretanja programa izvriti inicijaliziranje vrijednosti takvih varijabli. Neke lokalne varijable, sa podrujem definiranosti na nivou forma, takoe zahtijevaju neke inicijalne vrijednosti prilikom pokretanja tog forma. U programima se mora definirati form koji se otvara prvi prilikom pokretanja, tzv. start up form. Visual Basic uitava programski kod i dizajn start up forma prilikom pokretanja i uapoinje sa izvravanjem programa. Programski kod koji je napisan u event proceduri Load start up forma se izvrava kada se form uitava u memoriju. Ovaj proces je idealno mjesto gdje se definiraju inicijalne vrijednosti eljenih varijabli. Na isti nain se u svakoj ostaloj formi mogu odrediti inicijalne vrijednosti lokalnih varijabli prilikom uitavanja forma u njenoj Load event proceduri.

Pisanje izraza u naredbama pridruivanja


Kao to se je poznato vrijednost varijable se moe definirati koritenjem izraza u kojima je mogue da se izrauna nova vrijednost varijable. Visual basic prvo izraunava vrijednost izraza na lijevoj strani naredbe pridruivanja i nakon toga izraunatu vrijednost pridruuje varijabli. Izraunavanje izraze je mogue koristenjem razliitih operatora uz pomo kojih se formira aritmetika operacija. Operator je simbol koji predstavlja odgovarajuu operaciju: - Znak ^ predstavlja operaciju stepenovanja kojom se stepenuje broj koji se nalazi ispred operatora na eksponent koji se nalazi iza operatora. Na primjer izraz x^3 predstavlja operaciju stepenovanja na treu potenciju varijable x. - Znak * predstavlja operaciju mnoenja. - Znak / (slash) predstavlja operaciju dijeljenja pri emu je broj ispred operatora djeljenik a broj iza operatora djelitelj. Potrebno je voditi rauna da je djelitelj razliit od nule inae se pojavljuje pogreka tokom izvravanja programa. - Znak \ (backslash) predstavlja dijeljenje sa rezultatom koji je cijeli broj, tzv. integer dijeljenje.

48

Osnove programiranja u Visual Basic-u

Na primjer izraz 7 \ 3 daje za rezutat 2. I u ovom sluaju djelitelj mora biti razliit od nule inae se javlja pogreka. - MOD operator izraunava ostatak cijelog dijeljenja. Na primjer 7 MOD 3 za rezultat daje 1, jer je ostataka dijeljenja 1. Ovo je jedini operator koji je kljuna rije ostali su obini znakovi. - Znak + je zank operacije dijeljenja, a znak operacije oduzimanja, ali isto tako se koristi i kao znak za negativne brojeve.

Pravila redoslijeda izvravanja operacija


Kada izraz posjeduje vie operacija Visual Basic slijedi definirani redoslijed izvravanja operacija ime odreuje koja se operacija izvrava prva i tako redom. Redoslijed izvravanja operacija je slijedei: 1. Potenciranje (^) 2. Negacija (-) 3. Mnoenje (*) i dijeljenje (/) 4. Dijeljenje sa cijelim brojem (\) 5. MOD operacija, ostatak cijelog dijeljenja 6. Sabiranje (+) i oduzimanje (-) Slino kao i u isto matematikim izrazima redoslijed izvravanja operacija se moe diktirati koritenjm zagrada. U ovom sluaju se prvo izvravaju operacije koje su zatvorene unutar zagrada. U sluaju postojanja zagrada unutar zagrada, prvo se izvravaju izrazi u unutranjim zagradama a zatim u korak po korak u vanjskim. Zagrade su zgodan nain da se sloene operacije i izrazi predstave na itljiv i lako razumljiv nain odnosno u svim situacijama kada programer nije ba sasvim siguran u redoslijed izvoenja operacija. U svakom sluaju uvijek je bolje imati i viak zagrada ali taan rezutat nego kreirati neitljiv izraz ime se moe dovesti u pitanje ispravnost prorauna.

Operacije sa nizovima rijei (stringovima)


Visual Basic takoe ima specifine operacije sa ostalim, nenumerikim tipovima podataka. Na primjer moe se koristit operator kojim se vri sastavljanje vie nizova rijei u jedan niz odnosno reenicu odnosno reenice. Primjer sastavljanja je slijdei: msgTitle = Naslov & Objasnjenje U prethodnom primjeru vrijednost dvaju stringova Naslov i Objasnjenje se sastavljaju u jedan string Naslov Objasnjenje te se pridruuju varijabli msgTitle. U prethodnom izrazu operator sastavljanja dvaju stringova je opoerator &. Interesantno je da se operator & moe upotrijebiti i u sluaju kada se jednom stringu pridruuje varijabla koja ima isto numeriku vrijednost. U tom sluaju se numerika vrijednost tretira isto kao string pa je stoga i mogue izvriti spajanje. Pored operatora spajanja & za spajanje stringova se moe koristiti i operator +. Meutim ovaj operator se moe iskoristiti samo u sluaju spajanja istih stringova. U sluaju da se pokua spojiti string

49

Osnove programiranja u Visual Basic-u

sa varijablom koja ima numeriku vrijesnot dobit e se greka tokom faze izvravanja programa.

Nizovi
Niz je list, tabela odnosno viedimenzionalni skup podataka koji se predstavljaju istim imenom varijable. Niz ima svojstva koja posjeduje svaka varijabla: svrha mu je uvanje i predstavljanje podataka i ima podruje validnosti koje ovisi od toga koja kljuna rije je koritena (Dim, Private ili Public) te na kojem mjestu je izvreno deklariranja niza (Declarations sekcija ili zaglavlje procedure / funkcije). Meutim, pored ovih optih osobina koje ima svaka varijabla jedan niz posjeduje svojstvo da mu se podaci mogu organizirati u jednoj, dvije ili vie dimenzija. Svaki podatak unutar jednog niza jedinstveno je odreen brojem ili indeksom niza. Pri ovome kod jednodimenzinoalnih nizova postoji indeks sastavljen od jednog broja, kod dvodimenzionalnog niza, tabele, indeks je sastavljen od dva broja koja predstavljaju red i kolonu tabele podataka itd. Visual Basic nudi mmogunost kreiranja maksimalno 60 dimenzionalnog niza. Jednodimenzionalni nizovi Jednodimenzionalni niz se deklarira koristei kljune rijei Public, Private ilio Dim u ovisnosti od eljenog dosega varijable: PUBLIC nizX(N) AS Tip odnosno PRIVATE nizX(N) AS Tip odnosno DIM nizX(N) AS Tip N je broj koji oznaava maksimalan predvieni broj elemenata niza. U principu broj elemenata niza e biti N+1 jer se uzima da je prvi lan niza varijabla sa ineksom 0 (nula). U Visual Basicu se podrazumijeva da je prvi lan niza predstavljen indeksom 0. Meutim postoji naredba koja omoguuje da definiranje poetka indeksiranja od 1. Naredba koja eksplicitno odreuje od kojeg broja zapoinje indeksiranje je naredba OPTION BASE. Naredba se mora upotrijebiti u modulu prije bilo koje deklaracije niza. Oblik naredbe za sluaj definiranja poetka indeksiranja od 1 je slijedei: OPTION BASE 1 Visual Basic dozvoljava takoe kreiranje niza kod kojeg prvi lan ima indeks koji je proizvoljan redni broj. Mogue je dakle deklarirati niz kod kojeg se indeksi Nalaze izmeu dva redna broja. Primjer za ovo je: PUBLIC nizX (N to M) AS Tip U ovom primjeru deklarirana je niz pod nazivom nizX koji ima indekse koji polaze od vrijednosti N pa sve do vrijednosti M.

50

Osnove programiranja u Visual Basic-u

Viedimenzionalni nizovi U sluaju viedimenzinoalnih nizova potrebno je za svaku dimenziju da se odrede maksimalne vrijednosti ili raspon indeksa. Za sluaj dvodimenzionalnog niza, kod kojeg se zadaju samo krajnje vrijednostim indeksa deklaracija ima oblik: PUBLIC nizX (N, M) AS Tip U sluaju kreiranja dvodimenzinalnog niza sa indeksima u eljenim granicama onda deklaracija ima oblik: PUBLIC nizX (N1 TO N2, M1 TO M2) AS Tip Na isti nain viedimenzionalni niz se deklarira na slijedei nain: PUBLIC nizX (N1 TO N2, M1 TO M2, ... W1 TO W2) AS Tip Broj dimenzija je ogranien na 60. Dinaki nizovi Kada se deklarie niz u kojem se odredi taan broj elemenata niza, tzv niz fiksne duine, onda se nakon toga vie, tokom izvoenja programa, ne moe mijenati broj elemenata tog niza. Na primjer, ako se definira niz: PUBLIC struja(5) AS SINGLE Ovaj niz ima tano 6 elemenata tipa single, ako je OPTIOBN BASE podeena na 0 to je podrazumijevana (default) vrijednost, odnosno niz e imati 5 elemenata ako je OPTION BASE podeen na 1. Tokom izvoenja programa broj lanova niza se ne moe mijenjati. Visual Basic rezervira memorijski prostor za ovaj niz i to tano onoliko prostora koliko e zauzeti broje elemenata koji je definiran u deklaraciji niza te u ovisnosti od tipa niza. Ovaj rezervirani prostor ostaje nepromijenjen tokom cijelog trajanja rada programa. Nizovi fiksne duine su dobro rjeenje u svim sluajevima kada se unaprijed zna taan broj elemenata niza. Ali u nekim sluajevima, broj elemenata niza se odreuje dinamiki tokom faze koritenja programa, tj. moe postojati potreba da se broj elemenata mijenja tokom faze izvoenja programa. I ovdje je mogue koristiti niz fiksne duine koji moe da bude tako deklariran da ima veoma mnogo elemenata, odnosno onoliko mnogo koliko zahtjevi programa sigurno nee biti veliki. Ali ovakvo deklariranje niz je neprimjereno crpljenje resursa raunara jer se u tom sluaju za sve elemente definira memorijski prostor iako u veini sluajeva taj prostor nikada nee biti koriten. Rjeenje u ovakvim sluajevima je da se koriste takozvani dinamiki nizovi. Visual Basic rezervira memorijski prostor za dinamike nizove tokom faze izvravanja programa i ovaj memorijski prostor moe da se mijenja u ovisnosti od broja elemenata u dinamikom nizu. Deklariranje dinamikih nizova se vri na slian nain kao to se to radi sa nizovima fiksne duine, koritenjem kljunih rijei PUBLIC, PRIVATE ili DIM ispred naziva varijable niza,

51

Osnove programiranja u Visual Basic-u

ali se u zagrade ne upisuje broj kojim se unaprijed definira broj elemenata niza. U prethodnom primjeru, definiranje niza struja, promjenljive duine bi bilo: PUBLIC struja() AS SINGLE Vrlo vano je da se prije koritenja varijable niza, bilo gdje u programu, koristi kljuna rije REDIM kojom se definira trenutna duina (broj elemenata niza). Dakle, ako se u prethodnom primjeru eli raditi sa varijablom struja, i to sa prva 3 elementa, bez nultog elementa, potrebno je prije pozivanja varijabli struja(1), struja(2) i struja(3) da se izvri dinamiko podeavanje duine niza na slijedei nain: REDIM struja(3) Ako se dalje tokom faze izvravanja programa ponovo eli promijeniti duina niza, koristei ponovo prethodni primjer, ako se eli promijeniti broje elemenata varijable struja sa 3 na 10 mogue je to izvriti na dva naina: 1. Ponovnim koritenjem iste kljune rijei REDIM i upisivanjem novog ukupnog broja elemenata niza: REDIM struja(10) Na ovaj nain se ukupan broj elemenata poveava na 10 (pod pretpostavkom da je OPTION BASE podeen na 1). Meutim, ako su prije koritenja ove naredbe varijable struja(1), struja(2) i struja(3) ve bile koritene i imale neke vrijednosti, nakon ove nareddbe redimenzioniranja niza, vrijednosti u ova tri elementa niza se gube. Dakle potrebno je biti oprezan sa redimenzioniranjem niza jer se sve prethodne vrijednosti varijabli ponitavaju. Nekada je to i potrebno pa se u tim sluajevima redimenziniranjem prazni memorijski prostor za smjetaj novih vrijednosti. 2. Ukoliko se ipak ele zadrati prethodno izraunate vrijednosti u elementima niza, u prethodnom primjeru u elementima niza struja(1), struja(2) i struja(3), a potrebno je da se povea broj elemenata niza, onda se zajedno sa kljunom rijei REDIM koristi i kljuna rije PRESERVE. Na primjer naredba REDIM PRESERVE struja(10) e sauvati vrijednosti koje su prethodno pridruene elemenmtima niza i istovremeno poveat e broj elemenata niza na 10. Treba imati na umu da se REDIM naredba moe koristiti za podeavanje broj elemenata samo dinamikog, nikako ne niza fiksne duine. U nekim sluajevima REDIM naredba se moe koristiti i za promjenu broja dimenzija niza. Na primjer, pomou naredbe REDIM mogue je da se dvodimenzionalni niz promijeni u trodimenzionalni. Ali isto tako ovaj nain nije mogu ukoliko se koristi kljuna rije PRESERVE u okviru REDIM naredbe. Ukoliko se koristi kljuna rije PRESERVE onda se moe mijenjati broj elemenata niza samo u poslednjoj dimenziji viedimenzionalnog niza. Sve ostale dimenzije viedimenzionalnog niza moraju da ostanu iste ukoliko se ele zadrati vrijednosti elemenata niza.

52

Osnove programiranja u Visual Basic-u

Korisniki definirani tipovi


Jedan niz se sastoji od vie vrijednosti, koji imaju razliite indekse i isti naziv varijable ali svi imaju isti tip varijable, naime svi su ili brojevi, ili nizovi karaktera, ili neki drugi tip varijable itd. Za razliku od ovoga korisniki definirani tipovi omoguavaju kreiranje varijable koja moe da ima razliite tipove. Korisniki definirani tipovi se najee koriste u programima koji operiraju sa bazama podataka jer omoguavaju jednostavan rad sa razliitim podacima unutar jednog sloga podataka koji se sastji od mnotva razliitih tipova podataka. Meutim koritenje korisniki definiranih tipova moe da bude veomakorisno rjeenje i na drugim mjestima. Korisniki definirani tipovi se definiraju koritenjem kljune rijei TYPE uz kljune rijei PUBLIC ili PRIVATE kojima se definira podruje primjene tipa. Primjer naredbe kojom se definira tip je: PUBLIC NazivTipa ElementTipa01 AS Tip ElementTipa02 AS Tip ... Elemement TipaNN AS Tip END TYPE Pod nazivom tipa podrazumijeva se naziv koji odreuje sam korisnik, dok su elementi tipa su dijelovi korisniki definiranog tipa koji poprimaju vrijednosti i kojima se definira tip vrijednosti, tj. da li je element broj, tekst, objekt itd, u skladu sa tipovima koji postoje u Visual Basic-u (Tablea 4.1). Element tipa takoe moe da bude prethodno definiran drugi korisniki tip. Definicija tipa moe da bude samo u okviru General Declarations sekcije forma ili modula. Podrazumijeva se da je, ako se ne koristi kljuna rije PRIVATE ispred TYPE u definicija tipa, opseg vrijednosti tipa podruije cijelog projekta / programa. Na primjer, struja kratkog spoja moe da bude jedan korisniki definiran tip jer se za analitiko predstavljanje struje kratkog spoja mora koristiti vie, dodue samo numerikih, podataka. Primjer: PUBLIC TYPE strujaKS EffVrSimKomponente AS Single Frekvencija AS Single VremenskaKonstantaKola AS Single FazniStavNaponaUTrenutkuKS AS Single FazniPomak AS Single END TYPE. Type naredba definira novu strukturu, odnosno tip varijable, ali ne kreira varijable koje pripadaju tom tipu.Potrebno je da se posebno definiraju varijable, koristenjme PUBLIC, PRIVATE ili DIM kljunih rijei, koje e biti tipa koji je definiran od strane korisnika.

53

Osnove programiranja u Visual Basic-u

Na primjer, definiranje varijable koja predstavlja struju kratkog spoja moe se izvriti na slijedei nain: PUBLIC fazaR as strujaKS Pozivanje ili pridruivanje vrijednosti pojedinim elementima varijable se vri na slijedeim nain: nazivVarijable.nazivElementa Odreivanje efektivne vrijednosti simetrine komponete struje kratkog spoja, koristei definirani tip strujaKS i deklariranu varijbalu fazaR iz prethodnih primjera, se izvodi na nain: fazaR.EffVrSimKomponente=40000 Visual Basic ima jednu zgodnu naredbu koja olakava rad sa korisniki definiranim varijablama. Radi se o naredbi WITH koja omoguava skraivanje pisanja punog naziva varijable u sluajevima kada se na jednom mjestu radi sa vie elemnata istog tipa. Sintaksa koritenja WITH naredbe je slijedea: WITH nazivVarijable .nazivElementa01 = X1 .nazivElementa02 = X2 ... .nazivElementa0N = Xn END WITH

54

Osnove programiranja u Visual Basic-u

5. OSNOVNE NAREDBE

Uslovni izrazi
Aritmetike operacije se u Visual Basicu jednostavo izvravaju koritenjem matematikih operatora za mnoenja (*), dijeljenje (/), cijelo dijeljenje (\), sabiranje (+) i oduzimanje (-). Aritmetika operacija izraunava vrijednost koja se predstavlja sa jednom od Visual Basic tipova podataka, kao to je Byte, Integer, Long, Single ili Double. Nasuprot aritmetikim operacijama uslovni izrazi za rezultat daju samo jedan tip podataka: logiki (Boolean), i jednu od dvije mogue vrijednosti Tano (True) ili Netano (False). Dvije posebne grupe operacija su mogue sa uslovnim izrazima: - logika poreenja i - logike operacije. Logika poreenja izvode logiko poreenje izmeu dvije vrijednosti. Na primjer logika jednakost (=) je istinita ako su oba izraza u logikoj operaciji jednaka, logiko (<) je istinito ako je prvi izraz (izraz sa lijeve strane) manji od vrijednosti iozraza sa desne strane itd. Logike operacije kombiniraju ili mijenjaju logike vrijednosti varijabli ime se opet dobijaju logike vrijednosti Tano (True) ili Netano (False). Najee koritene logike operacije su And, Or i Not. Logika poreenja Postoji 6 operacija logikih popreenja, prikazanih u Tabeli 5.1:
Tablea 5.1 Logike operacije

Simbol < <= > >= = <>

Logika operacija Manje od Manje od ili jednako Vee od Vee od ili jednako Jednako Razliito

55

Osnove programiranja u Visual Basic-u

Logike operacije se koriste u logikim izrazima koji vraaju vrijenost Tano (True) ako je uslov zadovoljen odnosno Netano (False) ako uslovi nije zadovoljen. U sluaju da se u izrazu nalaze i aritmetike operacije onda se prvo izvravaju aritmetike operacije te se nakon toga vri logika provjera. Na primjer u izrazu: c>=a+b, prvo se vri sumiranje a+b te se nakon toga vri poreenje dobijene sume sa varijablom c. Logike operacije Visual basic posjeduje est logikih operacija: Not, And, or, Xor, Eqv i Imp. Pet od ovih est operacija: And, Or, Xor, Eqv i Imp se koriste sa parom operanda tj. koriste se za logiko poreenje vrijednosti izmeu varijabli i varijabli odnosno izmeu varijabli i konstantnih vrijednosti. esti operator Nor je unarni operator i koristi se sa samo jednom varijablom. Svaki od ovih operatora daje kao rezultat jednu od dvije logike vrijednosti. Na primjeru dvije logike varijable v1 i v2 bit e objanjeni rezutati pomenutih logikih operacija. NOT Kao rezultat daje suprotnu vrijednost od vrijednosti koji ima varijabla. Na primjer: Not v1 Za rezutat ima Netano (False) ako je v1 Tano (True) i obrnuto daje rezutat Tano (True) ako je v1 Netano (False). AND v1 And v2 Daje vrijednost Tano (True) samo ako su oba operanda v1 i v2 Tana (True). Samo u sluaju da su oba operand Netana (False) rezutat operacija Or daje Netano (False) OR v1 Or v2 Daje vrijednost Tano (True) samo je bilo koji od operanda v1 ili v2 Tana (True). U svim ostalim kombinacijama kao rezutat operacija And daje Netano (False) XOR v1 Xor v2 Daje vrijednost Tano (True) samo ako su vrijednosti operanda v1 i v2 suprotna: ako je v1 Tano (True) a v2 Netano (False) rezultat je Tano (True) i ako je v1 Netano (False) i v2 Tano (True) rezultat je opet Tano (True). U sluaju da su logike vrijednosti v1 i v2 jednake kao rezultat operacija Xor daje Netano (False)

56

Osnove programiranja u Visual Basic-u

EQV v1 Eqv v2 Daje vrijednost Tano (True) samo ako su vrijednosti operanda v1 i v2 jednake: ako su i v1 i v2 Tani (True) rezultat je Tano (True) te ako su i v1 i v2 Netano (False) rezultat je opet Tano (True). U sluaju da su logike vrijednosti v1 i v2 razliite kao rezutat operacija Eqv daje Netano (False). Kao to se vidi logika operacija Eqv je suprotna operaciji Xor. IMP v1 Imp v2 Daje vrijednost Netano (False) samo u sluaju kada je prvi operand v1 Taan (True) a drugi operand v2 Netaan (False). U svim ostalim situacijama rezultat operacije Imp je Tano (True).

Redoslijed izvravanja U situacijama kada se u izrazu pojavljuju logika poreenja, logike i aritmetike operacije Visual basic izvrava operacije ovim redoslijedom: 1. Sve aritmetike operacije, potujui pravila redoslijeda izvravanja aritmetikih operacija. 2. Sva logika poreenja poevi sa lijeve strane izraza ka desnoj 3. Logike operacije, u ovom poretku: Nor, And, Or, Xor, Eqv, Imp. Ponekad, kod sloenih izraza postaje suvie teko da se ustanovi koji rezutat e se dobiti . U takvim sluajevima, slino kao i kod izvravanja atimetikih operacija najbolje rjeenje predstavlja koritenje zagrada.

Naredbe odluivanja
Naredbe odluivanja daju mogunost da program vri odabir izmeu razliitih opcija te da odgovarajue odgovori na situacije koje se mogu javiti tokom izvravanja programa. Naredba IF je najee koritena naredba za odluivanje u Visual Basicu. Osnov svake IF naredbe je uslov izraz koji moe da bude istinit ili ne. U ovisnosti od vrijednosti zadatog uslova naredba IF izvrava jednu ili drugu aktivnost. Pored naredbe IF u Visual Basic-u se koristi i SELECT CASE naredba odluivanja.

IF naredba U ovisnosti od sloenosti uslova, IF naredba se moe koristiti kao jednolinijska ili vielinijska blok struktura. Oba naina koriste rijei: IF (ako), THEN (onda) i ELSE (odnosno, ili pak). U sluaju kada se kompletna naredba odluivanja koristi u vidu jedne linije koda onda se naredba sastoji od tri kljune rijei:

57

Osnove programiranja u Visual Basic-u

- IF predstavlja uslov na osnovu ije vrijednosti se odreuje naredni korak izvravanja - THEN predstavlja aktivnost koja se izvrava ukoliko je uslov, dat u IF dijelu naredbe odluivanja, ispunjen i - ELSE odreuje aktivnost u sluaju kada uslov nije ispunjen. Najjednostavniji oblik naredbe je u obliku: IF uslov THEN aktivnost U ovom sluaju aktivnost se izvrava samo ako je uslov ispunjen (True). U sluaju kada uslov nije zadovoljen ne preduzima se nikakva aktivnost. Neto optiji oblik naredbe je sa koritenjem kljune rijei ELSE: IF uslov THEN aktivnost1 ELSE aktivnost2 U ovom sluaju ako je uslov ispunjen izvrava se aktivnost1 a ako nije ispunjen onda se izvrava aktivnost2. U sluaju blok strukture, naredbe odluivanja sastavljene od vie linija koda onda se pored prethodno spomenutih kljunih rijei koriste: - ELSEIF, koristi se za odreivanje narednog uslova u bloko pod uslovom da prethondi uslov nije ispunjen. Ovo je opciona rije i moe se koristit vie puta u jendom bloku. - END IF, slui za oznaavanje zavretka bloka za odluivanje. Oblik naredbe je slijedei: IF uslov1 THEN aktivnost1 ELSEIF uslov2 THEN aktivnost2 ... ELSEIF uslovN THEN aktivnostN END IF Naredba IF se koristi u sluaju kada postoji konaan broj moguih uslova koji ele da se provjere i ukoliko jedna od uslova bude ispunjen da se izvri odgovrajua aktivnost. Primjer: Provjeravanje vrijednosti varijable sngStrujaKS, tipa Single, te ispisivanje odgovarajue poruke. IF sngStrujaKS > 40 THEN MsgBox Struja kratkog spoja veca od 40 kA ELSEIF sngStrujaKS < 40 THEN MsgBox Struja kratkog spoja manja od 40 kA ELSEIF sngStrujaKS = 40 THEN MsgBox Struja kratkog spoja je 40 kA ENDIF

58

Osnove programiranja u Visual Basic-u

Unutar jedne IF naredbe mogu se nalaziti dodatne, unutranje IF naredbe. Pri ovome se mora voditi rauna da se cijela unutranja IF naredba nalazi unutar programskog koda vanjske IF naredbe. Oblik IF naredbe sa unutranjom IF naredbom: IF uslov1 THEN aktivnost11 IF uslov2 THEN aktivnost21 ELSE aktivnost22 END IF ELSE aktivnost12 IF uslov3 THEN aktivnost31 ELSE aktivnost32 END IF END IF

SELECT CASE naredba Druga, esto koritena naredba za odluivanje u Visual basicu je naredba kojia koristi kljune rijei SELECT i CASE. Naredba omoguava odjeljivanja bloka programskog koda za razliite vrijednosti ispitnog izraza. Select Case naredba zasniva svoj rad na jednakosti vrijednosti koja se zadaje u Select Case ispitnom izrazu ili vrijednosti varijable i ponuenih vrijednosti u Case liniji. Naredbe unutar samo bloka se izvravaju i to onog bloka gdje je vrijednost izraunata u Select liniji jednaka vrijednosti u Case liniji. Oblik naredbe je slijedei: SELECT CASE ispitniIzraz CASE vrijednost1 Blok programskog koda 1 CASE vrijednost Blok programskog koda 2 ... CASE vrijednostN Blok programskog koda N CASE ELSE Blok programskog koda X END SELECT

59

Osnove programiranja u Visual Basic-u

Nain na koji SELECT CASE naredba radi je slijedei: 1. Prvo se poredi vrijednosti, koja je zadata ili izraunata u ispitnom izrazu, sa vrijednou u prvoj CASE naredbi (vrijednost1). 2. Ukoliko je vrijednost ispitnog izraza jednak vrijednosti zadatoj u CASE naredbi onda se izvrava programski kod koji pripada toj CASE naredbi. 3. Ako vrijednosti nisu jednake onda program prelazi na slijeu CASE naredbu i ponovo provjerava da li postoji jednakost ispitnog izraza i CASE vrijednosti. 4. Prvi put kada se ustanovi jednakost ispitnog izraza i vrijednosti u CASE naredbi, blok programskog koda izvrava i nakon toga se zavrava dalje provjeravanje te se SELECT CASE naredba zavrava. 5. Opciono se moe iskoristiti naredba CASE ELSE sa blokom programskog koda koji se izvrava ukoliko niti jdna od ponuenih vrijednosti u sklopu CASE naredbi ne odgovara ispitnom izrazu zadatom u SELECT CASE naredbi. CASE izrazi mogu imati slijedee oblike: 1. Lista vrijednosti. Programski kod se izvrava ukoliko postoji jednakost ispitnog izraza sa bilo kojom od upisanih vrijednosti. Primjer: CASE vrijednost1, vrijednost2...vrijednostN 2. Opseg vrijednosti. Programski kod se izvrava ukoliko vrijednost ispitnog izraza ulazi u opseg zadatih 3. Primjer: CASE IS operator vrijednost Primjer: Provjera vrijednosti varijable intNapon, tipa Integer, koja na osnovu vrijednosti napona ispisuje odgovarajuu porku. SELECT CASE intNapon CASE IS < 110 MsgBox Napon je manji od 110 kV CASE 110 TO 220 MsgBox Napon jei izmedju 110 i 220 kV CASE 420, 550 MsgBox Napon je 420 ili 55 kV0 CASE IS >550 MsgBox Napon je veci od 550 kV CASE ELSE MsgBox Nepoznat napon END SELECT

Programske petlje
Ponavljanje naredbi je jedno od osnovnih osobina programiranja. Za izvravanje ponavljanja potrebno je organizirati programski kod u okviru programske petlje. Petlje ima dvije osnovne komponente: - blok programskog koda koji se izvrava i ponavlja - inaredbe koja kontrolira trajanje ponavljanja bloka programskog koda.

60

Osnove programiranja u Visual Basic-u

Iako je programski kod unutar petlje isti svako ponavljanje se u izvodi sa drugim vrijednostima podataka i to je ono to ini petlje istinski korisnim dijelom programskog koda. Visual Basic ima dvije osnovne vrste programskih petlji poznatijih po kjlunim rijeima DO i FOR.

DO petlja Prvi zahtjev programske petlje je da se definira blok programskog koda koji e da se izvodi i ponavlja. U DO petlji, naredba DO uvijek oznaava poetak programskog koda koji e da se ponavlja, dok naredba LOOP oznaava kraj bloka naredbi. Sve naredbe koje se nalaze izmeu kljunih rijei DO i LOOP ine blok koji se izvodi i ponavlja. Uslov koji kontrolira trajanje ponavljanja moe da se pojavi bilo u liniji koda sa DO naredbom, dakle na samom poetku petlje, bilo u liniji koda sa LOOP naredbom, odnosno na samom kraju petlje. U oba sluaja zajedno sa kljunim rijeima DO i LOOP koriste se i druge dvije rijei specifine za DO petlju: WHILE i UNTIL. Najee koritene kombinacije su DO i WHILE odnosno LOOP i UNTIL. Oblik programske petlje sa uslovom na poetku (u DO liniji): DO WHILE uslov LinijaKoda1 LinijaKoda2 ... Linija KodaN LOOP odnosno sa uslovom na kraju (u LOOP liniji): DO LinijaKoda1 LinijaKoda2 ... Linija KodaN LOOP UNTIL uslov U oba sluaj uslov mora da bude izraz koji je taan (True) ili netaan (False). U oba sluaja, promjena vrijednosti uslova sa taan na netaan i obrnuto uzrokuje prestanak ponavljanja programskog koda izmeu DO i LOOP naredbi. U sluaju WHILE uslova programski kod se ponavlja sve dok je uslov taan i zavrava se kada ovaj uslov postane netaan. Za razliku od ovoga, u UNTIL petlji se programski kod ponavlja sve dok je uslov netaan i prestaje sa se izvrava kada ovaj uslov postane taan. Unutar jedne DO petlje moe se formirati jo jedna, unutranja ili e koriteni naziv ugnjedena DO petlja. Pri ovome treba voditi rauna de se poetak, programski kod koji pripada unutranjoj petlji i zavretak unutranje petlje u potpunosti nalazi unutar programskog koda glavne odnosno vanjske petlje.

61

Osnove programiranja u Visual Basic-u

Oblik DO petlje se jednom unutranjom DO petljom je slijedei: DO WHILE uslov1 LinijaKoda11 LinijaKoda12 ... Linija Koda1N DO WHILE uslov2 LinijaKoda21 LinijaKoda22 ... LinijaKoda2N LOOP LinijaKoda1N+1 LinijaKoda1N+2 ... LinijaKoda1M LOOP Koritenje razliitih varijanta DO petlji je doputeno. Pri pisanju programskog koda, radi lake itljivosti ali i kontrole koda, potrebno je programski kod unutar petlje uvui za jedan odreeni razmak, najee pomou tipke TAB. Na ovaj nain lake se kontroliraju poetak i kraj petlje. Uvlaenje programskog koda je potrebno koristiti za svaku narednu petlju tako da se lako moe pronai poetak i kraj petlje.

FOR petlja Koritenje ove petlje se koristi kada se zna taan broj iteracija, odnosno ponavljanja programskog koda. Kao i kod DO petlje FOR petlja sadri blok programskog koda ije se izvoenje ponavlja. Kljuna rije FOR uvijek se nalazi na poetku bloka naredbi kojima se predstavlja FOR petlja. Bitno za ovu petlju je da mora postojati varijabla broja ijom se vrijednou definira poonavljanje izvoenja programskog koda. Druga kljuna rije je naredba NEXT kojom se oznaava kraj programske petlje. U svom najjednostavnijem obliku FOR petlja koristi jednu cjelobrojnu varijablu broja koja se poveava za jedan nakon svake iteracije. Oblik petlje moe se prikazati na slijedei nain: FOR brojac =m1 TO m2 LinijaKoda1 LinijaKoda2 ... LinijaKodaN NEXT brojac Vrijednosti m1 i m2 predstavljaju poetni i zadnju vrijednost koju broja moe da poprimi. Ponavljanje kree sa vrijednosu brojaa od m1. Na kraju prve iteracije kod naredbe NEXT broja poprima vrijednost (m1+1) i naredbe poevi od FOR linije se ponovo izvravaju. Svaki put kod NEXT naredbe vrijednost brojaa se povea za 1. Ponavljanje se izvodi sve

62

Osnove programiranja u Visual Basic-u

dok se ne postigne vrijednost brojaa jednaka m2. Kada se dostigne vrijednost vea od m2 onda se izvoenje petlje zavrava i program nastavlja da izvrava programski kod koji se nalazi nakon NEXT naredbe, ako takav postoji. U odreenim situacijama je potrebno da se vrijednost brojaa ne poveava tano mza jedan, nego za viu ili manju vrijednost. U tim sluajevima se koristi neto malo optiji oblik FOR petlje koji podrazumijeva koritenje naredbe STEP. Oblik FOR naredbe u ovom sluaju je slijedei: FOR brojac =v1 TO m2 STEP dv LinijaKoda1 LinijaKoda2 ... LinijaKodaN NEXT brojac Kao rezultat uvoenja STEP kljune rijei u FOR petlju, broja nee automatski poveati svoju vrijednost za 1 nakon dostizanja NEXT naredbe ve e se vrijednost brojaa poveati za vrijednost koja je specificirana nakon kljune rijei STEP, odnosno za vrijednost dv u prethodnom primjeru. Takoe je mogue napisati FOR naredbu tako da vrijednost brojaa opada. U ovom sluaju potrebno je da vrijednost v1 bude vea od vrijednosti v2, a da inkrementalno poveanje brojaa nakon STEP naredbe (dv) bude zadano kao negativan broj. Razmatrajui prethodno samo u dva sluaja se moe dogoditi da se nikako ne izvede niti jedna linija programskog koda u FOR petlji: - ukoliko je poetna vrijednost brojaa vea od krajnje vrijednosti, a inkrement zadan u STEP naredbi je pozitivan ili - ukoliko je poetna vrijednost brojaa manja od krajnje vrijednosti, a inkrement zadan u STEP naredbi je negativan. Iako je koritenje cjelobrojnih brojaa najee ui praksi Visual Basic takoe omoguava koritenje i brojaa sa decimalnim vrijednostima. U tim sluajevima poveanje ili smanjenje vrijednosti brojaa je mogue u vrijednostima koji nisu cijeli brojevi. Slino kao kod DO petlje i kod FOR petlje je doputeno koritenje petlje u petlji, odnosno unutranjih ili ugnjedenih petlji. Pravilo koritenja je identian: treba voditi rauna da se cijela unutranja petlja nalazi unutar vanjske petlje, tj. da bude ugnjedena. Generalno vai preporuka da se to je mogue vie koristi uvlaenje unutranjeg programskog koda. Primjer koritenja unutranje (ugnjedene) FOR petlje je: FOR brojac1 =v1 TO v2 STEP dv LinijaKoda11 LinijaKoda12 ... LinijaKoda1N FOR brojac2 = w1 to w2 STEP dw LinijaKoda21
63

Osnove programiranja u Visual Basic-u

LinijaKoda22 ... LinijaKoda2X NEXT briojac2 LinijaKoda1N+1 LinijaKoda1N+1 ... LinijaKodaM NEXT brojac1 Potrebno je imati na umu da e se u svakoj pojedinanoj iteraciji vanjske petlje izvriti sve iteracije unutranje petlje. U gornjem primjeru e se za svaku vrijednost brojaa brojac1 izvriti ((w2-w1)/dw)) iteracija u unutranjoj petlji, tj. za sve vrijednosti brojaa brojac2 od w1 do w2 sa korakom dw.

Naredbe za grafiki prikaz


Najee koritene naredbe za formiranje grafike su: LINE, za iscrtavanje ravne linije od take do take, odnosno pravougaonika i CIRCLE za iscrtavanje krunice, elipse ili dijela krunice ili elipse (luka). Naredba LINE Potpuna naredba LINE ima oblik u formi: NazivObjekta.LINE [STEP] (x1, y1) [STEP] - (x2, y2), [boja], [B][F] Oznake upotrijebljene u naredbi su slijedee. Oznake i kljune rijei unutar uglastih zagrada su opcione. NazivObjekta. Nije zahtijevano, a oznaava na kome se objektu vri iscrtavanje linije ili pravougaonika. Ako je izostavljen ovaj element u naredbi, onda se iscrtavanje vri direktno na formi koja ima fokus u tom trenutku. Najee se iscrtavanje vri unutar prethodno dizajniranih PictureBox-ova na formi. STEP (Korak) Opcioni parametar odreuje rastojanje poetne koordinate u naredbi u odnosu na trenutnu poziciju koja je zadana sa kljunim rijeima: CURRENTX i CURRENTY. (x1,y1) Takoe opcioni parametar naredbe. Odreuje poeetnu taku za iscrtavanje linije ili ugla pravougaonika. U ovisnosti od postavke osobine ScaleMode objekta na kome se iscrtava grafika ovisi koja mjerna jedinica se koristi u definiranju koordinate. Ukoliko je ovaj parametar isputen u naredbi kao poetna taka uzima se taka koja je prethodno definirana pomou kljunih rijei CURRENTX i CURRENTY. STEP Opcioni parametar. Ukoliko se koristi u naredbi onda znai da, koordinate krajnje take linije ili pravougaonika, predstavljaju relativan poloaj u odnosu na poetnu taku. (x2, y2) Zahtijevani parametar. Oznaava koordinate krajnje take linije. boja Opcioni parametar koji odreuje boju linije ili pravougaonika. Najee se zadaje putem naredbe RGB (r,g,b) pri emu u zagradi brojevi imaju vrijednost od 0 do 255, a

64

Osnove programiranja u Visual Basic-u

oznaavaju uee jedne od boja u definiciji: r (red) crvene, g (green) zelene, b (blue) plave. Vrijednost o odreuje da nema prisustva te boje, 255 oznaava maksimalno prisustvo boje. Na primjer, zadavanjem RGB(0,0,0) dobija se crna boja, RGB(255,255,255) bijela, RGB(255,0,0) daje isto crvenu boju itd. B (box - pravougaonik) Opcioni parametar. Ako se koristi u naredbi omoguava iscrtavanje pravougaonika kojem su suprotni uglovi zadani koordinatama poetne i krajnje take. F (filled ispunjeno) Opcioni parametar, oznaava da se povrina pravougaonika ispuni istom bojom kao to je boja linija. Ne moe se koristi bez parametra B. Ukoliko se koristi samo parametar B onda se iscrtava pravougaonik sa ispunom koja je definirana osobinama objekta FillColor i FillStyle na kome se iscrtava pravougaonik. Podrayumijevana, inicijalna vrijednost je da se bey prisustva parametra F iscrtava pravougaonik bey boje transparent. Primjer iscrtavanja linije na objektu picSlika od take definirane koordinatom (x1, y1) do take definirane koordinatom (x2, y2): picSlika.LINE (x1, y1) -- (x2, y2) Ukoliko se eli nastaviti crtanje linije od zadnje take, u gornjem primjeru to je taka (x2, y2), do nove take (x3, y3) onda je dovoljno upisati: picSlika.LINE (x3, y3) Isputena je prva koordinata, pa se podrazumijeva da je ona jednaka poslednjoj vrijednosti. Ukoliko se pak eli zadati relativni poloaj krajnje take u odnosu na prethodnu potrebno je ukljuiti i kljunu rije STEP: picSlika.LINE STEP (dx, dy) gdje je sa dx i dy zadat relativni prirast koordinata u odnosu na poslednju taku. Crtanje pravougaonika: picSlika.LINE (x1, y1) -- (x2, y2) , , B U prethodnomk primjeru nije zadavana posebna boja linije, pa je taj parametar isputen. Ipak potrebno je da se upotrijebi jo jedan zarez te da parametar B bude upisan na poziciju koja je odreena. Crtanje pravougaonika sa ispunom: picSlika.LINE (x1, y1) -- (x2, y2) , , B, F Crtanje pravougaonika sa ispunom u kome su lijija i ispuna crvene boje: picSlika.LINE (x1, y1) -- (x2, y2) , RGB(255,0,0) , B, F

65

Osnove programiranja u Visual Basic-u

Naredba CIRCLE Potpuna naredba CIRCLE ima oblik u formi: NazivObjekta.CIRCLE [STEP] (x, y), radijus, [boja, start, end, aspect] NazivObjekta. Slino kao i kod LINE naredbe, nije zahtijevani parametar, a oznaava na kome se objektu vri iscrtavanje krunice, kruga odnosno elipse. Ako je izostavljen ovaj element u naredbi, onda se iscrtavanje vri direktno na formi koja ima fokus u tom trenutku. Najee se iscrtavanje vri unutar prethodno dizajniranih PictureBox-ova na formi. STEP (Korak) Opcioni parametar koji odreuje rastojanje koordinate centra krunice odnosno elipse u odnosu na trenutnu poziciju koja je zadana sa kljunim rijeima: CURRENTX i CURRENTY. (x,y) Zahtijevani parametar. Oznaava koordinate centra krunice. U ovisnosti od postavke osobine ScaleMode objekta na kome se iscrtava grafika ovisi koja mjerna jedinica se koristi u definiranju koordinate. radijus - Kao to samo ime govori radijus (poluprenik) krunice. start, end - Opcioni parametri. Koriste se kada se eli iscrtati samo dio krunice odnosno elipse, a oznaavaju uglove poetka i kraja luka. Vrijednosti koje parametri mogu imati nalaze se u rasponu od -2*PI do +2*PI radijana. Podrazumijevana vrijednost, ako se ne specificiraju, za start je 0 a za end je 2*PI radijana. aspect - Opcioni parametar, odreuje odnos visine i irine elipse. Podrazumijevana vrijednost, ako se parametar ispusti, je 1 to oznaava krunicu. Ako je broj vei od 1 onda je visina vea od irine, dok se za aspect manji od 1 dobija elipsa kod koje je irina vea od visine. Da bi se ispunio krug ili elipsa potrebno je podesiti osobine FillColor i FillStyle objekta na kojem se iscrtava grafika. Samo zatvorene figure se mogu popuniti bojom. Dio krunice ili elipse se takoe moe zatvoriti linijama koje spajaju centar sa krajnjim takama. Da bi se to ostvarilo potrebno je koristiti negativne vrijednosti za start i end. Naredba uvijek iscrtava krunicu u smjeru suprotonom kretanju kazaljke na satu, tj. u pozitivnom smjeru. Primjer, naredbe za iscrtavanje jednostavne krunice na objektu picSlika: picSlika.CIRCLE (2000, 1500), 1000 Kod ove krunice x-koordinata centra se nalaze 2000 jedinica od lijeve granine linije objekta, y-koordinata se nalazi 1500 jedinica od gornje granine linije, dok je radijus kruga 1000 jedinica. U ovisnosti od postavke osobine ScaleMode objekta na kome se iscrtava grafika ovisi koja mjerna jedinica se koristi u definiranju koordinata. Iscrtavanje dijela krunice od 1 do 2 radijana: picSlika.CIRCLE (2000, 1500), 1000, , 1, 2

66

Osnove programiranja u Visual Basic-u

Isputen je parametar boja ali se je morao koristiti dodatni zarez. Iscrtavanje elipse kojoj je irina tri puta vea od visine: picSlika.CIRCLE (2000, 1500), 1000, , , , 0.333 pri ovome je horizontalno rastojanje (irina) jednaka zadanom radijusu, a visina je tri puta manja. Ukoliko se eli iscrtati elipsa kod koje je visina tri puta vea od irine, naredba je: picSlika.CIRCLE (2000, 1500), 1000, , , , 3 U ovom sluaju je vertikalno rastojanje (visina) jednaka radijusu, a irina je tri puta manja.

API Funkcije
Jedno od znaajnih svojstava Visual Basic-a je i njegova sposobnost da poziva funkcije pohranjene u datotekama dinamikih biblioteka (DDL), ukljuujui i API (od termina Application Programing Interface) funkcije. Pristup stotinama API funkcija, kao i ostalim funkcijama pohranjenim u DDL datotekama znatno proiruje mogunosti Visual Basica. Budui da API funkcije nisu interne funkcije Visual Basica potrebno ih je prije upotrebe eksplicitno deklarirati., na slian nain kako se to radi i sa varijablama. Poslije ovoga pozivanje API funkcije je jednako pozivanju bilo koje funkcije koja je definirana unutar projekta. Deklaracija API funkcija se vri pomou kljune rijei DECLARE a karakteristinio za veinu API funkcija je da su veoma dugake i da ih je veoma teko deklarirati jednostavnim upisivanjem. Zbog ovoga Visual Basic dolazi sa jednom zgodnom alatkom koja omoguava da se na jedan veoma lagan nain deklariraju API funkcije. Radi se VB 6 API Viewer-u, maloj aplikaciji koja pomae prilikom deklaracije API funkcija. Da bi se pokrenuo API Viewer potrebo ja na izborniku Add-Ins... odabrati opciju Add-In Manager... Slika 5.1.

Slika 5.1. Izbornik Add-ins...

Izborom ove opcije otvara se prozor prikazan na slici 5.2. U listi postojeih dodataka nalazi se i VB6 API Viewer. Potrebno je oznaiti ovu opciju te u okviru Load Behavior ukljuiti opciju Loaded / Unloaded ukoliko se eli ukljuivanje Viewer-a samo u tom trenutku. Na ovaj nain potrebno je svaki naredni put prilikom pokretanja Visual Basica ponovo ukljuivati Viewer, naravno po potrebi.
67

Osnove programiranja u Visual Basic-u

Load on Startup omoguava automatsko ukljuivanje Viewer-a svaki puit prilikom pokretanja Visual Basica.

Slika 5.2 Add-In manager...

Nakon ukljuivanja Viewer-a i zatvaranja prozora Add-In Manager-a lista opcija izbornika Add-Ins... postala je bogatija za jo jednu opciju: API Viewer, slika 5.3.

Slika 5.3 Izbornik Add-Ins... sa opcijom API Viewer.

Izborom novododane opcije konano se pokree aplikacija API Viewer, slika 5.4.

Slika 5.4 API Viewer

68

Osnove programiranja u Visual Basic-u

Prvo to je je sada potrebno je da se importuju podaci o APIU funkcijama iz datoteke podataka. To se ostvaruje izborom opcije Load Text File... sa izbornika File. Potrebno je odabrati txt datoteku WIN32API.TXT iz foldera Program Files \ Microsoft Visual Studio \ Common \ Tools \ Winapi koji se dodu[e otvara automatski iyborom opcije Load... Nakon uitavanja podataka u listi Available Items pojavit e se lista API funkcija. Da bi se izvrila ispravna deklaracija funkcije potrebno je da odabvrati odgovarajuu funkciju i kliknuti na dugme Add ime se deklaracija API funkcije dodaje u listu Selected Items. Mogue je dodati vie deklaracija, konstanti i tipova. Nakon ovoga kopiranje deklaracija u sekciju (General) - (Declarations) aktivnog forma ili modula vri se pomou dugmeta Insert.. Pomou opcija unutar okvira Declare Scope mogue je definirati da li e se API funkcija koristiti kao javna ili lokalna. Pomo u pronalaenju predstavlja mogunost da se u polju: Type the first few lettes of the word zou are looking for: upie par prvih slova API funkcije koju traite. Kao primjer koritenja API funkcija moe posluiti API funkcija POLYLINE kojom se moe vriti iscrtavanje velikog broja izlomljenih linija. Prednost ovog naina iscrtavanja linija u odnosu na nain sa naredbom LINE je u brzini izvravanja. U sluaju iscrtavanja sloenih grafikih elemenata API funkcija POLYLINE je nekoliko stotina puta bra od naredbe LINE, to esto moe da bude veoma znaajno. Najlaki nain dodavanja deklaracije API funkcije POLYLINE je pomou API Viewer-a. Deklaracija ima oblik: Public Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long Funkcija ima tri argumenta: - hdc, predstavlja objakat na kome se vri iscrtavanje linija - lpPoint, X i Y koordinata poetne take linije - nCount, ukupan broj taaka viestruke izlomljene linije. Interesantno je da se preko samo jednog parametra proslijeuju dvije vrijednosti. Naime, parametar lpPoint preuzima i koristi vrijednosti i X i Y koordinate! Mogue je jer je ovaj parametar posebno definirani korisniki tip POINTAPI. I ovaj tip se moe deklarirati koritenjem API Viewer-a. Potrebno je u polju API Type odabrati Types te onda u listi Available Items pronai tip POINTAPI te njegovu deklaraciju ubaciti u modul. Deklaracija POITAPI tipa je: Public Type POINTAPI x As Long y As Long End Type Koritenje POLYLINE funkcije zahtijeva prethodno odreivanje vrijednosti POINTAPI koordinata taaka koje ine izlomljenu krivu. Nakon toga se kompletna izlomljena linija, sastavljena od desetina ili stotina hiljada linija, parametar nCount, iscrtava u vrlo kratkom vremenskom intervalun na ovjektu specificiranom u parametru hdc.

69

Osnove programiranja u Visual Basic-u

6. RAD SA DATOTEKAMA PODATAKA

Uvod
Poznavanje rada sa vanjskim datotekama, upisivanje i itanje podataka je jedno od osnovnih znanja koje programer u Visual Basic-u treba da ima. Pod pojmom vanjske datoteke podataka podrazumijevaju se datoteke spaene na hard disku raunara, koje ne pripadaju direktno Visual Basic projektu, ali se kreiraju, auriraju i koriste od strane programa. Razliite su namjene ovih datoteka: - esto se koriste za trajno pohranjivanje podataka i informacija koje se generiraju tokom izvoenja programa i koje je neophodno sauvati za koritenje tokom buduih koritenja programa, - koriste se ponekad i za razmjenu podataka izmeu razliitih programa i razliitih vrsta programa, - takoe se kreiraju kao izlazni podaci prorauna, za lake koritenje u drugim dokumentima, editovanje, tampanje itd. Postoje konceputualno dvije vrste datoteka koje se mogu kreirati u Visual Basic-u: - datoteke sa sluajnim pristupom (random access files), sadre redove podataka fiksne duine. Pojedinani podaci se smjetaju u ovu vrstu datoteka u posebnom formatu tako da svaki podatak ima odgovarajue mjesto u datoteci. Zahvaljujui ovome Visual Basic moe ii direktno na odreena mjesta unutar datoteke i itati podatke ba na tim mjestima, pri emu nije potrebno da se itaju podaci koji se nalaze prije. Ova vrsta datoteka se najee koristi u okviru rada sa bazama podataka. - tekstualne datoteke podataka, koje se koriste za pregled i ureivanje u tekstualnim editorima, ali i kao vid konanog izvjetaja sa rezultatima prorauna. U svrhe smjetanja podataka, tekstualne datoteke su organizirane kao sekvencijalne datoteke: program upisuje i ita podatke redom od poetka do kraja. Tekstualne i datoteke sa sluajnim pristupom koriste sasvim drugaije programerske tehnike za upisivanje i itanje podataka.

70

Osnove programiranja u Visual Basic-u

Datoteke sa sluajnim pristupom


Datoteke sa sluajnim pristupom sadre redove striktno definiranih podataka. Svaki red podataka je skup individualnih podataka pri emu se tano zna tip podatka, njegova duina i mjesto u jednom redu. Najznaajnija osobina ove vrste datoteka je pristup. Podacima je mogue pristupiti na veoma jednostavan, definiran i to je esto najvanije, brz nain. Za kreiranje datoteka sa sluajnim pristupom potrebno je prije svega definirati korisniki tip kojim se definira vrsta i broj individualnih podataka unutar korisnikog tipa. Nakon toga se odgovarajue varijable deklariraju kao varijable tog tipa. Te varijable postaju idealna mjesta za upisivanje i itanje podataka iz datoteka sa sluajnim pristupom. Svaka operacija upisivanja podataka upisuje cijeli red podataka i takoe svaka operacija itanja takoe ita cijeli red podataka. Program pronalazi podatke prema rednom broju reda, poevi od 1 pa sve do broja koji predstavlja ukupan broj podataka. Poznavanje odnosno odreivanje tog rednog broja predstavlja jedan od najvanijih zadataka koji se predstavlja pred programera. Mnogo je naina kako da se olaka rad, na primjer to moe biti ifra nekog dijela, broj fakture, JMBG itd. Postupak rada sa datotekama sa sluajnim pristupom Visual Basic posjeduje nekoliko naredbi putem kojih se kreiraju datoteke podataka sa sluajnim pristupom. Najvaije su: - OPEN, za otvaranje datoteke podataka sa sluajnim pristupom. - PUT #, za upisivanje reda podataka u datoteku, - GET #, za itanje reda podataka iz datoteke. Naravno, prije kreiranja datoteke podataka pretpostavlja se da je pomou naredbe TYPE izvrena deklaracija korisnikog tipa kojim se definira struktura podatka, te da su pomou naredbi PUBLIC, PRIVATE ili DIM deklarirane varijable tog tipa. Uobiajeni koraci prilikom rada sa datotekema sa sluajnim pristupom su slijedei: - definiranje strukture podataka tj. korisnikog tipa koritenjem TYPE naredbe, - deklariranje varijabli koje su korisniki definiranog tipa iz prethodnog koraka, - koritenjem OPEN naredbe otvara se datoteka podataka sa sluajnim pristupom, - dodjeljivanje vrijednosti svakom od elemenata varijeble i koritenjem naredbe PUT #, upisivanje tih podataka u datoteku te - itanje podataka koritenjem naredbe GET # i pridruivanje podataka elementima varijable. Otvaranje datoteka sa sluajnim pristupom Naredba za otvaranje datoteke sa sluajnim pristupom je slijedea: OPEN nazivDatoteke FOR RANDOM AS #brojDatoteke LEN = duinaReda

71

Osnove programiranja u Visual Basic-u

Datoteka sa sluajnim pristupom otvorena na ovaj nain je spremna i za itanje i za pisanje podataka. Visual Basic kljuna rije kojom se definira ova vrsta datoteke je RANDOM. Veoma je vano i da se pomou naredbe LEN (length duina) specificira ukupna duina jednog reda podataka u bajtovima. Treba imati na umu da svaki red podataka ima jedinstveno odreenu strukturu i istu duinu. Zahvaljujui ovome mogue je uvijek nai poetak, bilo koji element unutar reda podataka i kraj svakog reda podataka. U naredbi se na mjestu nazivDatoteke upisuje puni naziv datoteke koja se po prvi put kreira ili otvara za auriranje, a koji u sebi ukljuuje disk, direktorije i sam naziv datoteke podataka. Definiranje duine jednog reda podataka je mogue ako se znaju tipovi svih elemenata unutar korisniki definiranog tipa. U Tabeli 4.1 prikazane su vrijednosti u bajtovima koje zauzimaju odreeni tipovi podataka. Meutim postoji i jednostavniji nain odreivanja duine jednog reda podataka, koritenjem naredbe LEN u obliku LEN (varijablaPodataka) pri emu se pod pojmom varijablaPodataka podrazumijeva varijabla koja slui kao spremik podataka i koja je korisniki definirani tip podataka. Broj datoteke predstavlja jedinstveni identifikator datoteke podataka unutar jednog projekta / programa. Tokom koritenja programa u jednom trenutku se moe raditi sa vie vanjskih datoteka podataka. Zbog ovoga, svaka od datoteka podataka ima jedinstveni identifikator u obliku cijelog broja datoteke, a koji se koristi u naredbama PUT, GET, SEEK. Prilikom otvaranja datoteka podataka koja ve sadri redove podataka esto je neophodno odrediti ukupan broj redova podataka. To se moe jednostavno uraditi koritenjem naredbe LOF (brojDatoteke) to je skraenica od Length Of File odnosno duina datoteke. Dijeljenjem broja dobijenog sa ovom naredbom sa duinom jednog reda (naredba LEN) moe se lako izraunati ukupan broj redova podataka.

Upisivanje podataka Naredba PUT # se koristi za upisivanje podataka na odreenu poziciju u datoteci koja je otvorena kao datoteka sa sluajnim pristupom. Sintaka komande PUT # je: PUT #brojDatoteke, brojRedaPodatka, varijablaPodataka U ovoj naredbi brojDatoteke je cijeli broj koji identificira datoteku podataka u koju se upisuju podaci, to je isti broj koji je koriten u naredbi OPEN prilikom otvaranja datoteke. Parametar brojRedaPodatka je cijeli broj koji odreuje red u tabeli podataka. Varijabla koja sadri podatke, specificirana u sintaksi kao varijablaPodataka mora prije upisivanja u datoteku podataka da sadri potrebne podatke.

72

Osnove programiranja u Visual Basic-u

Od ova tri parametra koja koristi naredba PUT #, parametar koji zahtijeva posebnu panju je brojRedaPodatka. U ovisnosti od vrijednosti ovog parametra naredba PUT # e da izvri jednu od slijedee dvije stvari: - ako brojRedaPodatka ima vrijednost od 1 pa do broja koji je jednak ukupnom broju redova podataka u datoteci podataka sa sluajnim pristupom, a u koju se upisuje podatak, onda e naredba da upie podatke preko postojeih podataka u tome redu. Na primjer, ako u naredbi PUT #, brojRedaPodatka ima vrijednost 5, a datoteka podataka ima 10 redova, onda e 5. red podataka da bude auriran sa novim podacima - stari podaci e da se prebriu. - ako je brojRedaPodatka vei za jedan od ukupnog broja redova podataka, onda e se dodati novi red podataka u datoteku. Prilikom dodavanja novih redova podataka u datoteku potrebno je biti paljiv da se sluajno, umjesto dodavanja novog reda podataka, ne prebrie neki ve postojei red. Visual Basic omoguava da se parametar brojRedaPodatka ispusti, te da se naredba pie u obliku: PUT #brojDatoteke, , varijablaPodataka Ako se naredba pie u ovom obliku onda Visual Basic svaki naredni put, kada se koristi naredba PUT #, dodaje novi red podataka u datoteku podataka. Ovo moe biti veoma koristan nain da se upie inicijalni set podataka u novootvorenu datoteku podataka. Ali, treba biti oprezan sa izbjegavanjem specificiranja broja reda, jer prvi put kada se naredba upotrijebi bez ovog parametra, Visual Basic podrazumijeva da se radi o prvom redu podataka. Ako se otvori datoteka podataka sa ve postojeim podacima, onda se koritenjem ove naredbe mogu prebrisati postojei podaci.

Upisivanje podataka Naredbom GET # itaju se podaci iz datoteke podataka i upisuju u odgovarajuu varijablu. Sintaksa naredbe je slijedea: GET #brojDatoteke, brojRedaPodatka, varijablaPodataka Parametri koji se koriste u ovoj naredbi su identini kao i kod naredbe PUT #, samo to u ovom sluaju elementi varijable podataka poprimaju vrijednosti iz datoteke podataka. Kao i kod naredbe PUT # i kod naredbe GET # se moe ispustiti parametar brojRedaPodatka pri emu onda naredba ima oblik: GET #brojDatoteke, , varijablaPodataka U ovom sluaju svaka ovakva GET # naredba ita slijedei red podataka iz datoteke. Naredba se moe koristiti u DO petlji za itanje podataka: DO WHILE NOT EOF (brojDatoteke) GET #brojDatoteke, , varijablaPodataka ... LOOP
73

Osnove programiranja u Visual Basic-u

U prethodnom primjeru kljuna rije EOF se koristi za prepoznavanje kraja datoteke podataka. Petlja e da se izvrava sve dok se ne doe do kraja datoteke podataka kada EOF postaje True. EOF je skraenica od End Of File (kraj datoteke).

Pozicioniranje na eljeni red unutar datoteke podataka esto se u programu zahtijeva itanje ili pisanje odreenog reda podataka. Da bi se dolo do eljenog reda koristi se naredba SEEK #. Sintaksa naredbe je: SEEK #brojDatoteke, brojRedaPodatka Ovom naredbom se pozicionira tano na eljeni red unutar otvorene datoteke podataka. Sada se moe koristiti naredba PUT # za pisanje odnosno naredba GET # za itanje podataka. Mogue je koristiti skraeni oblik naredbi, PUT # i GET #, bez specificiranja reda podatka, jer je broj reda ve prethodno definiran SEEK naredbom.

Tekstualne datoteke
Tekstualne datoteke podataka se koriste za spremanje opih podataka i raznih informacija koje mogu da se tampaju ili koriste u drugim programima. Visual Basic posjeduje dvije grupe naredbi koje se koriste za upisivanje i itanje podataka i o njima e biti rijei u nastavku.

Kreiranje i otvaranje tekstualnih datoteka Naredba OPEN se u Visual Basic-u koristi za jednu od slijedee tri svrhe: - kreiranje nove datoteke podataka, - dodavanje novih podataka u ve postojee datoteke i - itanje podataka. Za tekstualne datoteke podataka OPEN naredba se pojavljue uobiajeno u slijedeem formatu: OPEN nazivDatoteke FOR mod AS #brojDatoteke U naredbi se nalaze tri parametra: - nazivDatoteke prestavlja puni naziv datoteke, apsolutna putanja i naziv datoteke. Podaci o nazivu datoteke se navode u okviru navodnika (") kao niz karaktera (string) ili kao varijabla tipa String. - mod odreuje vrstu operacije koja se eli izvoditi sa podacima datoteke podataka. Za tekstualne datoteke podataka, najee koritene vrste operacija su: INPUT (itanje podataka), OUTPUT (upisivanje podataka)i APPEND (dodavanje podataka). - brojDatoteke je cijeli broj sa kojim se u narednim naredbama identificira datoteka podataka prilikom itanja ili upisivanja podataka, na isti nain kao i u sluaju datoteka sa sluajnim pristupom.
74

Osnove programiranja u Visual Basic-u

OUTPUT parametar u OPEN naredbi ima drugaiju namjenu i uticaj na podatke od APPEND parametra. Za oba parametra vai da ako ne postoji datoteka podataka u trenutku izvravanja naredbe OPEN onda e se ona kreirati u tom trenutku. Koritenjem parametra OUTPUT u naredbi OPEN, Visual Basic otvara datoteku podataka i brie sve prethodno upisane podatke i priprema datoteku za upisivanje novih podataka. U sluaju koritenja APPEND parametra Visual Basic otvara datoteku i sprema se za dodavanje novih podataka uvajui prethodno spaene podatke.

Upisivanje podataka Otvaranje tekstualnih datoteka za upisivanje podataka vri se pomou naredbe OPEN sa parametrima OUTPUT ili APPEND: OPEN nazivDatoteke FOR OUTPUT AS #brojDatoteke odnosno OPEN nazivDatoteke FOR APPEND AS #brojDatoteke Podaci se u tekstualne datoteku upisuju koristei jednu od dvije kljune rijei: - WRITE # ili - PRINT # Naredba PRINT # je pogodna za upisivanje cijelog reda podataka, tj. podataka u obliku reenica teksta. Naredba WRITE # je pogodna za upisivanje redova podataka u obliku tablice podataka, slino kao kod datoteka sa sluajnim pristupom. Obje naredbe imaju slinu strukturu: moraju se specificirati broj datoteke u koji se upisuju podaci te mora se proslijediti tekst koji se upisuje: WRITE #brojDatoteke, "Tekst" odnosno PRINT #brojDatoteke, "Tekst" Vie razliitih podataka se kod naredbe WRITE # proslijeuje odvajanjem pomou zareza, dok se to kod naredbe PRINT # moe uraditi i pomou take i zareza (;). Razlika izmeu naredbi je i u slijedeem: kod naredbe WRITE # svaki red se zavrava sa tzv. carriage-return oznakom koja oznaava kraj reda, dok to nije sluaj kod PRINT # naredbe. itanje podataka Otvaranje tekstualnih datoteka za itanje podataka koristi se pomou parametra INPUT u OPEN naredbi:

75

Osnove programiranja u Visual Basic-u

OPEN nazivDatoteke FOR INPUT AS #brojDatoteke Koritenjem parametra INPUT u naredbi OPEN podrazumijeva se da datoteka specificirana u naredbi ve postoji. Ako datoteka ne postoji naredba e uzrokovati greku: "File not Found" ("Datoteke nije pronaena") tokom faze izvravanja programa. Da bi se sprijeilo dogaanje ovakvih pogreaka dobro je da se program prilagodi tako da u sluaju nepostojanja datoteke podataka program direktno, a ne Visual Basic, informira korisnika o nastaloj greki. To se moe jednostavno uraditi koritenjem naredbe ON ERROR u okviru pocedure ili funkcije u kojoj se vri pozivanje datoteke podataka za itanje. Za ovo je potrebno, nakon zaglavlja procedure, upisati naredbu: ON ERROR GOTO n gdje je sa n oznaka na koju u sluaju greke prelazi izvravanje programskog koda. Obino se oznaka postavlja pred kraj procedure. Da se programski kod nakon oznake ne bi izvravao i u sluaju kada se ne dogodi greka, a kada izvravanje programskog koda doe do te oznake pri kraju procedure ili funkcije, uobiajeno je da se prije oznake postavi naredba EXIT SUB ili EXIT FUNCTION, ime se preskae izvravanje koda ukoliko se greka ne dogodi. Primjer: PUBLIC SUB procOtvaranjeDatoteke (nazivDat) ON ERROR GOTO 1 OPEN nazivDat FOR INPUT AS #1 DO WHILE EOF (1) INPUT #1, data LOOP CLOSE #1 EXIT SUB 1 BEEP MsgBox "Pogreska prilikom otvaranja datoteke podataka! Provjerite da li datoteka " & nazivDat " uopce postoji! ", vbOKOnly + vbExclamation END SUB U programskom kodu ispod oznake upisuje se programski kod koji se izvrava ukoliko se dogodi greka. Obino je to korisno upozorenje za korisnika. itanje podataka iz datoteke podataka ostvaruje se koritenjem naredbe INPUT #. Sintaksa naredbe je: INPUT #brojDatoteke, varijablaA, varijablaB... Pri ovome sve varijable su tipa String, bez obzira da li se radi o pravim nizovima karaktera, rijeima ili brojevima. Naredbom se itaju podaci na isti nain kao to su i zapisani u datoteci

76

Osnove programiranja u Visual Basic-u

podataka. Naredba prepoznaje zarez kao oznaku koja odvaja pojedine podatke. Naredba WRITE # je suprotna naredba naredbi INPUT #. Na isti nain kako su podaci zapisivani koritenjem naredne WRITE # podaci moraju da se itaju koritenjem naredbe INPUT #. Drugi nain itanja podataka je koritenjem naredbe LINE INPUT #. Sintaksa naredbe je: LINE INPUT #brojDatoteke, varijabla Ovom naredbom se ita cijeli red podataka u datoteci i smjeta u jednu varijablu tipa String. Korisna je u sluaju kada se ne zna struktura ili ne postoji jasno definirana struktura podataka u datoteci. Ova naredba se najee koristi kao suprotna naredba naredbi PRINT #.

Zatvaranje tekstualnih datoteka Kada program zavri rad sa datotekom podataka potrebno je da se ta datoteka podataka i zatvori. Naredba kojom se datoteka podataka zatvara je slijedea: CLOSE #brojDatoteke Naredbom se zatvara datoteka sa brojem koji joj je pridruen tokom operacije otvaranja. Alternativno se moe koristiti i naredba CLOSE bez oznaavanja broja datoteke. U tom sluaju potrebno je samo upisati: CLOSE Ovom nredbom se zatvaraju sve, u tom trenutku otvorene datoteke podataka.

77

You might also like