Datoteka: Programiranje v Visual Basicu
 

Programiranje v Visual Basicu

Avtor: Jure Pečovnik, PF Maribor, 2. letnik,

Kratka predstavitev vsebine

Visual Basic je programski jezik, ki omogoča programerju izdelavo aplikacij, ki tečejo v operacijskem sistemu Okna (Windows). Glede na možnosti, ki nam jih ponuja ločimo standardno, profesionalno in podjetniško (enterprise) inačico, zadnje verzije pa nosijo število 4.

Gre za programski jezik tretje generacije, ki nam omogoča vizualno programiranje. Prvo pomeni, da so pravila za pisanje programske kode še posebej, ko gre za uporabo besed, podobna tistim v živem jeziku, drugo pa, da je te kode bistveno manj kot pri nevizualnih programskih jezikih, saj lahko marsikaj postorimo že z miško. Programiranje v tem jeziku nas dodobra seznani z načinom delovanja Oken. Lahko bi rekli, da aplikacije ne pišemo v enem kosu, temveč zgolj posamezne podprograme, kar omogoča, da lahko imamo v Oknih naenkrat zagnanih več programov.

V fazi oblikovanja uporabniškega vmesnika nanj položimo gradnike ter jim nastavljamo lastnosti. Nato se lotimo pisanja programske kode, kjer s programskimi stavki ob določenih dogodkih nad določenimi gradniki posameznim gradnikom spreminjamo njihove lastnosti in s tem njihov izgled. Kodo je mogoče pisati le tako, da ji priredimo izbran dogodek nad določenim gradnikom. Koda se izvrši šele, ko (če) se ta dogodek v resnici zgodi.

Visual Basic ima tudi nekaj značilnosti, zaradi katerih bi lahko rekli, da gre za do uporabnika (programerja) prijazen programski paket.

Prihodnost Visual Basica se mi zdi dokaj obetavna, njegov nadaljnji razvoj pa vidim predvsem v smeri še večjega povezovanja z drugimi aplikacijami ter s še bolj enostavnim pisanjem programske kode.


Značilnosti in dosežki razvoja in uporabe

Programiranje v Visual Basicu je sestavljeno iz dveh opravil, to sta risanje uporabniškega vmesnika ter pisanje programske kode.

Pri prvem gre za to da, programer s pomočjo miške nalaga na uporabniški vmesnik gradnike. To so osnovni elementi uporabniškega vmesnika in se, dokler programa ne poženemo, obnašajo nekako tako kot grafika v urejevalniku besedil. Z miško jih lahko premikamo ter raztezamo in krčimo v vse smeri, kar nam omogočajo oprijemke. Izgled posameznega gradnika v celoti določajo njegove lastnosti (properties). Le-te so zapisane v posebnem oknu, ki se nam za posamezni gradnik pokaže ob kliku nanj. Takšne lastnosti so denimo ime (name), višina (height), širina (width), barva ozadja (backcolor)... Te lastnosti lahko sami z miško in tipkovnico poljubno spreminjamo, obstajajo pa tudi takšne, ki jih je mogoče spreminjati zgolj s programsko kodo. Lastnosti, ki jih gradnik ima, so odvisne od tega, za kakšne vrste gradnik gre. Tako ima gradnik slikovni okvir (picture box) lastnost slika (picture), ki ji priredimo ustrezno datoteko na disku, nasprotno pa ima gradnik tekstni okvir (text box) namesto nje lasnost besedilo (text), ki ji priredimo željeno kombinacijo znakov. Osnovni gradnik je obrazec (form), saj je vse ostale gradnike mogoče "nalagati" zgolj nanj, ne pa neposredno na uporabniški vmesnik. Risanje uporabniškega vmesnika je za programerje velika pridobitev, saj jim ni več treba pisati dolge in zapletene kode, ki naj računalnik "prepriča," da bo denimo besedilo, čez katerega je uporabnik vlekel miško označeno, temveč preprosto postavi na obrazec tekstni okvir, ki že upošteva takšno možnost.

Po risanju uporabniškega vmesnika sledi pisanje programske kode. To se dogaja v posebnem oknu (modulu), kjer sta na voljo dva seznama. V prvem so imena gradnikov, ki se nahajajo na vmesniku, v drugem pa dogodki (events), ki se lahko nad izbranim gradnikom zgodijo. Pogostejši dogodki so klik (Click), dvojni klik (DblClick), sprememba(Change), uporabnik je čez gradnik povlekel miško (DragOver)... Ob izbiri v obeh seznamih, se nam na zaslonu pokaže koda v naslednji obliki:

Private Sub ImeGradnika_Dogodek ()

End Sub

Koda, ki jo vpišemo v vmesni prostor, se izvrši le takrat, ko se nad gradnikom zgodi ustrezen dogodek. Gradniku ukazni gumb (command button) in dogodku klik lahko tako priredimo kodo, ki se bo izvedla le, ko bo uporabnik pritisnil na gumb. Sam program je tako sestavljen iz posameznih podprogramov, ki se izvajajo ob ustreznih dogodkih na določenih gradnikih. Kodo (podprograme) pišemo s programskimi stavki, ki so oblikovani podobno kot v živem jeziku, kar daje Visual Basicu značaj programskega jezika tretje generacije. V njih uporabljamo rezervirane besede (if, else, next...), konstante, spremenljivke, imena gradnikov z njihovimi ostalimi lastnostmi in metodami (methods)... Še posebej so pomembne spremenljivke, brez katerih si je težko predstavljati dober programski jezik. V Visual Basicu imamo osem vrst spremenljivk, med katerimi izbiramo glede na opravilo, ki se ga lotevamo. Tako bomo za opravke z besedilom uporabljali niz (string), ko gre za manj zahtevne izračune, bomo uporabljali majhna naravna števila (integer), pri zelo zahtevnih izračunih pa bomo uporabljali 64-bitno realno število (double).

Spremenljivke je treba najavljati, sicer se predvideva, da je bila spremenljivka najavljena na tistem mestu v kodi, kjer smo jo prvič uporabili. Pri spremenljivkah pa sta poleg njihove vrste pomembna še njihov doseg in življenjska doba, ki sta odvisna od načina in mesta njihove najave v kodi. Splošna oblika najave se glasi:

RezerviranaBeseda ImeSpremenljivke As TipSpremenljivke

Spremenljivko lahko najavimo v posebnem deklaracijskem delu modula, ki ga najdemo s pomočjo že omenjenih seznamov, ali pa "na območju" nekega podprograma. če bomo najavljali v deklaracijskem delu, obstajata dve možnosti. Ob uporabi rezervirane besede Global bo spremenljivka dostopna vsem modulom aplikacije in njena vrednost se bo hranila, dokler se bo aplikacija izvajala. če na istem mestu najavljamo z Dim, spremenljivka ne bo več dostopna vsem modulom. Ob najavi iz podprograma se spet odpirata dve možnosti, ki ju ponujata besedi Static in Dim Najava s Static še dodatno zoži obseg spremenljivke, tako da je zdaj na voljo le še podprogramu, ostaja pa ji življenjska doba trajanja aplikacije. Pri Dimu se skrajša tudi življenjska doba, ki sedaj traja zgolj do naslednjega dogodka. Oglejmo si primer:

Privat Sub Command1_Click ()

Dim a As Integer

a=a+1

End Sub

Tako napisana koda pomeni, naj se ob vsakem kliku na ukazni gumb Command1 vrednost spremenljivke a poveča za 1. Toda podprogram ne deluje, ker pri tovrstni najavi življenjska doba spremenljivke traja zgolj do novega dogodka. Ker ni bila uporabljena beseda Static, bo vrednost ob vsakem kliku 1. Pri opravilih s spremenljivkami uporaljamo operatorje. Najpogostejši so +, -, x ter &, ki ga uporabljamo za združevanje nizov, kot na primer:

Dim a As String

Dim b As String

a = "Tekstni"

b = "Okvir"

Text1.Text=a & b

Vrnimo se k stavkom. Delimo jih na prireditvene, odločitvene in zanke.

Prireditveni stavki imajo najpreprostejšo skladnjo ki je:

Cilj = Vrednost

Cilj je lahko bodisi spremenljivka, bodisi lasnost nekega gradnika, medtem ko je vrednost lahko podana enako kot cilj, ali pa kar kot taka, denimo 33. Opozoriti je treba, da znak = tu nima enakega pomena kot v matematiki. Tako lahko zapišemo a=a+1, kar je matematični nesmisel, v Visual Basicu pa pomeni, naj se vrednost spremenljivke a poveča za 1. Nasprotno pa bo Visual Basi javil napako če bomo napisali 2=a, pa čeprav a morda tudi v resnici je 2. Spremenljivke pa niso le numerične. Napišemo lahko tudi:

Dim a As String

a = "Dober dan"

Text1.Text = a

Takšen podprogram bo vpisal v tekstni okvir Text1 besedilo "Dober dan."

Nad posameznimi vrstami gradnikov je mogoče izvajati metode. Le-te so že narejeni podprogrami oziroma sklopi prireditvenih stavkov, ali pa so kar edini način za določeno operacijo nad nekim gradnikom. Skladnja stavka, kjer uporabljamo metode je:

ImeGradnika.Metoda Argument

V gradnik seznam (list box) lahko nov zapis dodamo z metodo additem:

List1.Additem "Nov zapis"

Odločitvene stavke uporabljamo, kadar želimo, da se nek sklop programske kode izvede le, če bo izpolnjen nek pogoj. Najpogostejši stavek te vrste je if stavek, ki ima naslednjo obliko;

If pogoj then

koda

End if

Pogoj se napiše povsem matematično, v obliki izjave ali kombinacije izjav. Napišemo lahko:

If text1.text="Pravilno" then

text.text="Napačno"

End if

Ob tako napisani kodi se bo v tekstni okvir text1 vpisalo "napačno" le, če bo poprej v njem pisalo "pravilno."

Včasih želimo, da se določena koda izvrši večkrat in tedaj uporabimo zanke. Najpogostejša je for zanka, ki ima skladnjo:

For Spremenljivka=x to y step z

koda

Next Spremenljivka

Ko se program izvede do točke v kodi, kjer piše for, se koda v zanki izvede, spremenljivki pa se prišteje vrednost z-ja. če vrednost spremenljivke še vedno ustreza neenačbi x<=spremenljivka<=y, se koda v zanki spet izvede in tako naprej. če ne napišemo "step z," se za "z" privzame vrednost 1. Zapišemo lahko:

For a=1 to 10

List1.additem a

Next a

Takšna koda doda v seznam deset novih elementov, katerih vsebina so naravna števila od ena do deset.

Zgodi se tudi, da bi sicer radi, da se neka koda izvaja večkrat, a števila ponavljanj ni mogoče opredeliti preprosto numerično, temveč želimo, da se dogaja toliko časa, dokler je izpolnjen nek pogoj. Tedaj uporabimo na primer zanko While...Wend, ki ima obliko:

While pogoj

stavki

Wend

Stavki se bodo izvajali, dokler bo pogoj resničen. Paziti moramo, da imajo stavki v zanki določen upliv na resničnost pogoja, sicer se bodo izvajali, če je bil pogoj na začetku resničen, dokler ne bomo ponovno zagnali računalnika. Vsi obrazci in moduli, ki jih uporabimo za izdelavo neke aplikacije predstavljajo projekt. Vsak obrazce ima tudi lastnost ikona (icon). Ko napišemo inštalacijski program, ali pa to prepustimo kar Setup Wizardu, programu v okviru Visual Basica, se ob inštalaciji na zaslonu ustvari okno naše aplikacije, v katerem so ikone vseh obrazcev projekta.

Omeniti kaže še nekatere navidez malenkosti, ki pa programerju dodobra olajšajo delo. če želimo, da se ob dogodku D1 nad gradnikom G1 izvrši poleg njegove kode še tista iz dogodka D2 nad gradnikom G2, lahko zapišemo kar:

Private Sub G1_D1 ()

koda

G2_D2

End Sub

Visual Basic nas že med pisanjem programske kode opozarja na napake, ki jih že lahko ugotovi. Na preostale nas opozori, ko program poženemo. pri čemer lahko vidimo, kje v kodi se je izvajanje programa ustavilo. Zelo posrečena je tudi rešitev glede velikih črk. Načelno Visual Basic ne dela razlike med velikimi in malimi črkami, toda omogoča nam, da se spremenljivka, ki jo najavimo kot ImeSpremenljivke vedno izpiše tudi z velikima črkama, tudi če ju sami nismo vpisali. To je lahko zelo učinkovit način za prestrezanje napak, ki jih Visual Basic verjetno ne bi zaznal niti med izvajanjem programa, le-ta pa vseeno ne bi tekel tako kot smo si zamislili, saj bi računalnik morebitno tipkarsko napako razumel kot uvedbo nove spremenljivke. Za večjo preglednost kode se uporabljajo tudi barve, tako da so rezervirane besede kot so Private Sub, End Sub, If, Then, For, Next.. drugače obarvane kot ostala koda. Programer si lahko za posameznim stavkom v isti vrstici piše tudi komentarje.

Danes so v Visual Basicu že napisane nekatere velike okenske aplikacije, denimo Microsoft Profit.


Razmišljanje o nadaljnjih možnostih uporabe

Menim, da Visual Basic ima prihodnost. Njegovi temeljni prednosti sta enostavnost in hitrost programiranja. Morda programer včasih res trči na kakšen oreh, ki ga v Visual Basicu ni mogoče streti, toda le-ta mu v takšnih primerih omogoča tudi vnos rešitev napisanih v drugih jezikih. Njegova velika prednost je tudi v tem, da lahko pri snovanju posamičnih programskih rešitev programer uporabniku zlahka z gradniki prikaže približno podobo bodoče aplikacije, kar omogoča, da uporabnik že med programiranjem izrazi svoje želje.

Spremembe pričakujem predvsem na dveh področjih. Menim, da se bo Visual Basic še bolj povezal z drugimi aplikacijami. Že sedaj omogoča dinamično izmenjevanje podatkov (DDE, Dynamic Data Exchange) in povezovanje in vgrajevanje objektov (OLE, Object Linking and Embedding) ter upravljanje z drugimi programi na način, da jih krmarimo s pritiskanjem tipk na tipkovnici, kar počnemo kar iz kode, napovedujejo pa, da bo Visual Basic izkoristil možnosti, ki jih ponuja internet. Številne nove poti se ponujajo tudi kar zadeva pisanje programske kode. Marsikje bi bili programerji zagotovo veseli novih metod, pri čemer naj navedem le primer gradnika matrika (grid). Pri tem gradniku besedilo ali sliko vnesemo v celico (cell) tako, da celico najprej določimo z njenim stolpcem (col) in vrstico (row), na to pa matriki priredimo ustrezno lastnost. Primer takšne kode je:

Grid1.Col=2

Grid1.Row=3

Grid1.Text="Napis"

Za takšno opravilo bi bilo precej bolj priročna sintaksa:

Grid1.Text(2, 3)="Napis"

Kar zadeva shranjevanje podatkov, lahko le te shranjujemo v datotekah, ki jih oblikujemo sami, možno pa je tudi branje, urejanje in spreminjanje podatkov v sedmih formatih podatkovnih baz. Zaenkrat lahko odpremo lastno podatkovno bazo zgolj v formatu Access, kar pa utegne biti neprijetno, če svojo programsko rešitev vklapljamo v sistem, ki operira z drugačno vrst podatkovnih baz.

Menim, da bi bilo mogoče precej bolj poenostaviti tudi delo z odložiščem, saj so v Oknih le redki programi, ki ga ne uporabljajo. Zdaj je namreč potrebno za vsako vrsto gradnika posebej pisati kodo, tako da se navede za kakšno informacijo gre in katere podizbire v izbirnem seznamu urejanja (edit) naj bodo označene, kateri del informacije v gradniku naj se prenese na odložišče...

Visual Basic se mi zdi za začetnike zelo primeren programski jezik, saj jim zelo nazorno predstavlja miselnost računalnika, manj potrpežljivi pa tudi dovolj hitro pridejo do prvih rezultatov. Njegova prihodnost po mojem mnenju ni v zelo zahtevnih programskih rešitvah, temveč v aplikacijah "za vsakdanjo rabo," še zlasti tistih namenjenih manjšemu številu uporabnikov.


Literatura

1. Uroš Mesojedec: Visual Basic od začetka do aplikacije, Desk d.o.o Izola 1994

2. Language referenc (Microsoft Visual Basic), Microsoft corporation 1995

3. Programmer's guide (Microsoft Visual Basic), Microsoft corporation 1995

4. Datoteke s pomočjo programskega paketa Visual Basic.
Avtor: Tomaž Kovačič



V kolikor želite sodelovati z nami, vas vljudno vabimo, da se nam pridružite, pošljete članke, ali pa samo izrazite vaša mnenja.