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č |
|







