03 - forme, kontrole i izbornici

Upload: blaki

Post on 31-May-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 03 - forme, kontrole i izbornici

    1/34

    3 . P O G L A V L

    Forme, kontrole i izborni

    Prvi korak u kreiranju aplikacije Visual Basicom je stvaranje su~elja, vidljivog dijelaaplikacije s kojim }e korisnik sura|ivati. Forme i kontrole su osnovni dijelovi stvaranjasu~elja; to su objekti kojima }ete izgraditi svoju aplikaciju.

    Forme su objekti koji imaju svojstva koja odre|uju njihovo pona{anje, te doga|aje kojiodre|uju interakciju s korisnikom. Postavljanjem svojstava forme i pisanjem VisualBasic programskog koda koji }e odgovarati na doga|aje, prilagodit }ete objekt zahtje-vima va{e aplikacije.

    Kontrole su objekti koji su sadr`ani u objektima forme. Svaki tip kontrole ima svojkomplet svojstava, metoda i doga|aja koje ga ~ine prikladnim odre|enoj namjeni. Ne-ke kontrole koje mo`ete koristiti u svojim aplikacijama najbolje su opremljene za unosi prikaz teksta. Druge kontrole omogu}it }e vam pristup podacima i postupcima drugihaplikacija kao da su one, iako udaljene, dio va{eg programskog koda.

    Ovo poglavlje uvodi vas u temeljne pojmove rada s formama i kontrolama te njihovimpridru`enim svojstvima, metodama i doga|ajima. Razra|eno je puno standardnih kon-trola, te neki dijelovi specifi~ni za forme kao {to su izbornici i dijalo{ki okviri.

    Sadr`aj Tuma~enje svojstava, postupaka i doga|aja

    Oblikovanje forme

    Pokretanje akcija klikom na gumb

    Kontrole za prikaz i unos teksta

    Kontrole s izborom

    Kontrole za prikaz slika i grafike

    Dodatne kontrole

    Razumijevanje fokusa Postavljanje tabulatornog reda

    Osnove izbornika

    Upit korisniku dijalo{kim okvirom

    Vodi~ za programer

  • 8/14/2019 03 - forme, kontrole i izbornici

    2/34

    Primjer aplikacije: Controls.vbpPrimjeri programskog koda u ovom poglavlju preuzeti su iz primjera aplikacijeControls.vbp ~iji ispis je dan u direktoriju Samples.

    Tuma~enje svojstava, postupaka i doga|ajaForme i kontrole Visual Basica su objekti koji pokazuju vlastita svojstva, postupke idoga|aje. Svojstva mo`ete shvatiti kao osobine objekta, postupke kao akcije, a doga-|aje kao odgovore objekta.

    Svakodnevni objekt kao dje~ji balon tako|er ima svoja svojstva, postupke i doga|aje.Svojstva balona uklju~uju vidljive osobine kao {to su visina, promjer i boja. Ostalasvojstva opisuju njegova stanja (napuhan ili ispuhan), ili osobine koje nisu vidljive,kao starost. U pravilu, svi baloni imaju ta svojstva; vrijednosti tih svojstava se razliku-ju od balona do balona.

    Balon tako|er ima nerazdvojive postupke ili doga|aje koje mo`e izvesti. Postoji postu-

    pak napuhavanja (ubacivanja zraka u balon), postupak ispuhavanja (izbacivanje zraka)i postupak dizanja (ako ga pustite iz ruke). I ovdje, svi baloni sposobni su obaviti ovepostupke.

    Baloni tako|er imaju unaprijed odre|ene odgovore na neke vanjske doga|aje. Naprimjer, balon }e na doga|aj bu{enja odgovoriti ispuhavanjem, ili }e na doga|ajpu{tanja odgovoriti dizanjem.

    Slika 3.1 Objekti imaju svojstva, odgovaraju na doga|aje i izvode pos-

    1. dio Temelji Visual Basica

    32 Vodi~ za programere

    tupke

    Kad bi mogli programirati balon, programski kod Visual Basica bi izgledao kako slije-di. Za postavljanje svojstava balona:

    Balon.Color = Red

    Balon.Diameter = 10

    Balon.Inflated = True

    postupak Balon.Deflate

    postupak Balon.Makenoisesvojstvo

    svojstvo Balon.Diameter

    svojstvo Balon.Color doga|aj

  • 8/14/2019 03 - forme, kontrole i izbornici

    3/34

    Uo~ite sintaksu koda imenu objekta (Balon) i svojstva (.Color, boja) dodijeljena jevrijednost (Red, crvena). Boju balona mo`ete promijeniti u programskom kodu po-navljanjem ove naredbene linije i dodjeljivanjem druge vrijednosti. Svojstva tako|ermogu biti postavljena u prozoru sa svojstvima tijekom izrade aplikacije.

    Postupci balona mogu biti pozivani na sljede}i na~in:

    Balon.Inflate napu{i balon

    Balon.Deflate ispu{i balon

    Balon.Rise 5 podigni balon za 5

    Sintaksa je sli~na dodjeljivanju svojstava ime u objekta (imenica) dodan je postupak(glagol). U tre}oj liniji, postoji i dodatna vrijednost, nazvana argument, koja odre|ujevisinu podizanja. Neke metode }e imati jedan ili vi{e argumenata za daljnji opis akcijekoja treba biti obavljena.

    Balon mo`e odgovoriti na doga|aj na sljede}i na~in:

    Sub Balon_Puncture()

    Balon.Deflate ako je balon probu{en ispu{i ga

    Balon.MakeNoise Bang stvori zvukBalon.Inflated = False nije napuhan

    Balon.Diameter = 1 promjer = 1

    End Sub

    U ovom slu~aju, programski kod opisuje pona{anje balona kad se pojavi doga|ajbu{enja: pozivamo postupak Deflate (ispuhavanje), te postupak MakeNoise (stvaranjezvuka) sa argumentom Bang (tip zvuka koji }e biti napravljen). S obzirom na to dabalon vi{e nije napuhan, svojstvo Inflated dobiva vrijednost False (neto~no), a svojstvoDiameter (promjer) dobiva novu vrijednost.

    Iako u stvarnosti ne mo`ete programirati balon, mo`ete programirati formu ili kontrolu

    Visual Basica. Kao programer, vi vr{ite nadzor. Vi odlu~ujete koja svojstva trebaju bitipromijenjena, koji postupci pozvani i koji }e doga|aji biti odgovor tako da postignete`eljeni izgled i pona{anje aplikacije.

    Oblikovanje formeForme su temeljni objekti izgradnje aplikacije Visual Basica, zapravo prozori sa koji-ma korisnik sura|uje tijekom izvo|enja aplikacije. Forme imaju vlastita svojstva,doga|aje i postupke s kojima mo`ete kontrolirati njihov izgled i pona{anje.

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

  • 8/14/2019 03 - forme, kontrole i izbornici

    4/34

    Slika 3.2 Forme i kontrole imaju vlastita svojstva, doga|aje i postupke

    1. dio Temelji Visual Basica

    34 Vodi~ za programere

    Prvi korak u kreiranju forme je odre|ivanje njezinih svojstava. Svojstva forme mo`eteodrediti tijekom vremena izrade aplikacije (design time) u prozoru sa svojstvima, tetijekom vremena izvo|enja (run time) pisanjem programskog koda.

    Napomena Radit }ete s formama i kontrolama, odre|ivati njihova svojstva ipisati programski kod tijekom vremena izrade aplikacije, a to je sve ono vrijemekad stvarate aplikaciju u okru`enju Visual Basica. Vrijeme izvo|enjaje vrijeme kadzapravo izvodite aplikaciju i djelujete kao {to bi trebao i korisnik.

    Postavljanje svojstava formeVe}ina svojstava forme djeluje na njzien izgled. Svojstvo Caption odre|uje tekst kojije ispisan u naslovnoj traci forme; svojstvo Icon odre|uje ikonu koja }e biti iscrtanakad smanjite formu. Svojstva MaxButton i MinButton odre|uju mo`e li forma bitismanjena ili pove}ana. Mijenjanjem vrijednosti svojstva BorderStyle mo`ete odrediti

    pona{anje forme prilikom promjene njezine veli~ine.Svojstva Height i Width odre|uju po~etnu veli~inu forme; svojstva Left i Top odre|ujupolo`aj forme u odnosu na gornji lijevi kut ekrana. Uz pomo} svojstva WindowStatemo`ete odrediti ho}e li se forma pojaviti u smanjenoj, pove}anoj ili normalnoj veli~ini.

    Svojstvo Name odre|uje ime forme s kojim }e se ona pozivati iz programskog koda.Po standardu, kad prvi put dodate formu projektu, njezino ime }e biti Form1, Form2, itako dalje. Dobra je ideja promijeniti formi ime uz pomo} svojstva Name u ne{to smi-slenije, kao frmUpis formi za upis podataka.

    Najbolji na~in upoznavanja s mno{tvom svojstava forme je isprobavanje. Promijenite

    neka svojstva forme u prozoru sa svojstvima (slika 3.3), pokrenite aplikaciju i pogle-dajte rezultate. Vi{e o svakom svojstvu mo`ete saznati ako ga odaberete i pritisnete F1za pregled pomo}i osjetljive na sadr`aj.

    svojstvo Top kont-

    svojstvo Caption kontrole

    svojstvo Left kont-

    doga|aj

    Gumb_Click()postupak Gumb.Move

    svojstvo Gumb.Caption = "OK"

  • 8/14/2019 03 - forme, kontrole i izbornici

    5/34

    Slika 3.3 Prozor sa svojstvima

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Doga|aji i postupci formeKao i objekti i forme mogu izvoditi postupke i odgovarati na doga|aje.

    Doga|aj forme Event pokre}e se svaki put kad forma mijenja veli~inu, akcijom kori-snika ili programskim kodom. Zahvaljuju}i tome, mo`ete poduzimati akcije kao pomi-canje ili promjena veli~ine kontrola na formi kad se njena veli~ina promijeni.

    Doga|aj Activate pojavljuje se svaki put kad forma postane aktivna; doga|ajDeactivate pojavljuje se kad neka druga forma ili aplikacija postanu aktivne. Ovidoga|aji su uobi~ajeni za pokretanje i zaklju~ivanje pona{anja forme. Na primjer, upotprogram doga|aja Activate mo`ete staviti programski kod koji }e istaknuti tekst unekom okviru s tekstom; potprogramom doga|aja Deactivate mogli bi snimiti pro-mjene u datoteku ili bazu podataka.

    Kako bi u~inili formu vidljivom, trebate pozvati postupak Show:

    Form2.Show

    Pozivanje postupka Show ima jednak rezultat kao i postavljanje vrijednosti svojstvaforme Visible na True.

    Ve}ina postupaka forme poziva tekst ili grafiku. Postupci Print, Line, Circle i Refresh

    korisni su kod ispisa ili crtanja direktno na povr{inu forme. O ovim postupcima vi{e seraspravlja u 12. poglavlju Rad sa tekstom i grafikom.

    Za vi{e informacija Za dodatne informacije o formama, pogledajte Vi{e o forma-ma u 6. poglavlju Stvaranje korisni~kog su~elja.

  • 8/14/2019 03 - forme, kontrole i izbornici

    6/34

    Pokretanje akcija klikom na gumbNajlak{i na~in kako omogu}iti korisniku rad s aplikacijom je stvoriti mu gumb kojitreba kliknuti. Mo`ete iskoristiti kontrolu naredbenog gumba koja postoji u VisualBasicu, ili mo`ete stvoriti vlastiti gumb koriste}i kontrolu slike koja }e sadr`avatigrafiku, kao ikona.

    Kori{tenje naredbenih gumbVe}ina aplikacija stvorenih u Visual Basicu ima naredbene gumbe koji omogu}ujukorisniku pokretanje akcija jednostavnim klikom. Kad korisnik odabere gumb, tajgumb ne poduzima samo prikladnu akciju, nego i izgleda kao da je pritisnut i pu{ten.Kad god korisnik klikne gumb, poziva se potprogram postupka Click. Programski kodkoji treba biti izvr{en postavite u taj potprogram.

    Postoji puno na~ina kako odabrati naredbeni gumb tijekom izvo|enja aplikacije:

    Upotrijebite mi{a za klik na gumb.

    Dovedite fokus na gumb pritiskanjem na tipku TAB, i nakon toga odaberite gumbpritiskom na tipke SPACEBAR ili ENTER (pogledajte Razumijevanje fokusa unastavku ovog poglavlja).

    Pritisnite kombinaciju tipki za aktiviranje pristupnog znaka (ALT + podvu~enoslovo) na naredbenom gumbu.

    U programskom kodu promijenite vrijednost svojstva Value naredbenog gumba uTrue:

    cmdClose.Value = True

    U programskom kodu pozovite doga|aj Click naredbenog gumba:

    cmdClose_Click

    Ako je naredbeni gumbpodrazumijevani naredbeni gumb forme, pritisak naENTER }e odabrati gumb, ~ak i ako pomaknete fokus na neku drugu kontrolu.Tijekom izrade aplikacije mo`ete odrediti podrazumijevani naredbeni gumb posta-vljanjem svojstva Default tog gumba na True.

    Ako je naredbeni gumb podrazumijevanigumb za opoziv (Cancel button) forme,pritisak na ESC }e odabrati taj gumb, ~ak i ako je fokus na nekoj drugoj kontroli.Tijekom izrade aplikacije mo`ete odrediti gumb za opoziv postavljanjem njegovogsvojstva Cancel na True.

    Sve ove akcije su povod Visual Basicu za poziv potprograma Click.

    Aplikacija Test ButtonsSvojstvo Caption mo`ete upotrijebiti za ispis teksta na naredbenom gumbu kako bikorisniku dali do znanja {to taj gumb radi. Na slici 3.4, primjer s naredbenim gumbimaiz aplikacije Controls prikazuje naredbeni gumb sa sadr`ajem svojstva Caption

    1. dio Temelji Visual Basica

    36 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    7/34

    postavljenim na Change Signal (za radnu verziju ovog primjera, pogledajteButton.frm u aplikaciji Controls.vbp). Uo~ite da podvu~eno slovo S predstavlja pri-stupni znak ovom naredbenom gumbu. Ubacivanje znaka & u tekst svojstva Captionozna~ava slovo koje slijedi pristupnim znakom (na primjer, Change &Signal).

    Slika 3.4 Naredbeni gumb s naslovom

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Kad korisnik klikne naredbeni gumb, izvr{it }e se programski kod koji se nalazi u nje-govom potprogramu Click. U ovom primjeru, svaki put kad korisnik klikne gumb, po-javit }e se druga~ija ikona semafora.

    Za vi{e informacija O ostalim svojstvima naredbenog gumba, pogledajte 7.poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Kontrole za prikaz i unos tekstaKontrole natpisa (label) i okvira s tekstom (text box) koriste se za ispis i uno{enje tek-sta. Natpise mo`ete koristiti kad `elite da aplikacija prikazuje tekst na formi, a okvire stekstom kad `elite omogu}iti korisniku da unese tekst. Natpisi sadr`e tekst koji semo`e samo ~itati, dok okviri s tekstom sadr`e tekst koji mo`e biti mijenjan.

    za pru`anje ovih mogu}nosti iskoristite ovu kontrolu

    Tekst kojeg korisnik mo`e mijenjati, okvir s tekstomna primjer polje za upis narud`be ili lozinke

    Tekst koji se samo prikazuje, na primjer opis natpispolja na formi ili ispis uputa korisniku

  • 8/14/2019 03 - forme, kontrole i izbornici

    8/34

    Kori{tenje natpisa za prikaz tekstaKontrola natpisa sadr`i tekst koji korisnik ne mo`e direktno mijenjati. Mo`ete iskori-stiti natpise za opis kontrola, kao {to su okviri s tekstom i trake za pomicanje, kojenemaju vlastito svojstvo Caption. Trenutni tekst ispisan u natpisu odre|en je vrijed-no{}u svojstva Caption, i mo`e biti postavljen tijekom izrade aplikacije uz pomo} pro-

    zora sa svojstvima ili tijekom izvo|enja aplikacije postavljanjem iz programskog koda.U pravilu, tekst je jedini vidljivi dio kontrole natpisa. Svejedno, ako vrijednost svojst-va BorderStyle postavite na 1 ({to mo`ete napraviti tijekom izrade aplikacije), natpis}e se pojavljivati s okvirom izgledat }e sli~no okviru s tekstom. Izgled kontrole nat-pisa mo`ete promijeniti postavljanjem druga~ijih vrijednosti u svojstva BackColor,BackStyle, ForeColor i Font.

    Veli~ina natpisa prilago|ena sadr`ajuJednolinijski tekstovi kao sadr`aji natpisa mogu biti odre|eni tijekom izrade aplikacijeu prozoru sa svojstvima. [to ako `elite upisati dulji tekst ili ga promijeniti tijekom

    izvo|enja aplikacije? Natpis ima dva svojstva koja }e vam pomo}i u promjeni veli~inekontrole tako da odgovaraju duljem ili kra}em sadr`aju: AutoSize i WordWrap.

    Svojstvo AutoSize odre|uje ho}e li kontrola automatski promijeniti veli~inu tako daodgovara sadr`aju. Ako je postavljeno na True, natpis }e postati dulji tako kako bimogao ispisati cijeli sadr`aj, kao {to je prikazano na slici 3.5.

    Slika 3.5 Primjer svojstva AutoSize

    1. dio Temelji Visual Basica

    38 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    9/34

    Svojstvo AutoWrap uzrokuje pove}anje natpisa po okomici da bi cijeli tekst mogaobiti prikazan, dok {irina ostaje ista, kao {to je prikazano na slici 3.6. Za radnu verzijuovog primjera, pogledajte Wordwrap.frm u primjeru aplikacije Controls.vbp.

    Slika 3.6 Primjer svojstva WordWrap

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Napomena Ako pokrenete primjer AutoSize svojstva iz aplikacije Controls.vbp,uo~it }ete da obje kontrolne ku}ice moraju biti potvr|ene kako bi radio primjersvojstva WordWrap. Razlog tome je da svojstvo AutoSize mora biti postavljeno na

    True kako bi svojstvo WordWrap imalo u~inka. Vodoravna dimenzija natpisa }e sepove}ati samo ako je duljina najdulje rije~i ve}a od trenutne duljine kontrole.

    Za vi{e informacija Za dodatne informacije o svojstvima kontrole natpisa pogleda-jte 7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Rad s okvirima s tekstomOkviri s tekstom su svestrane kontrole koje mogu biti kori{tene za upis teksta od stranekorisnika ili za prikaz teksta. Okviri za tekst ne bi se trebali koristiti za prikaz tekstakoji korisnik ne smije mijenjati, osim ako ne postavite vrijednost svojstva Locked naTrue.

    Tekst koji je trenutno ispisan u okviru s tekstom odre|en je sadr`ajem svojstva Tekst.On mo`e biti odre|en na tri razli~ita na~ina: tijekom izrade aplikacije putem prozora sasvojstvima, tijekom izvo|enja aplikacije postavljanjem iz programskog koda, ili upi-som od strane korisnika. Trenutni sadr`aj okvira s tekstom mo`e biti dohva}en tijekomizvo|enja aplikacije ~itanjem sadr`aja svojstva Text.

  • 8/14/2019 03 - forme, kontrole i izbornici

    10/34

    Vi{elinijski okviri s tekstom i prijelom tekstaU pravilu, okvir s tekstom prikazuje jednu liniju teksta i ne prikazuje trake za pomica-nje. Ako je tekst dulji od raspolo`ivog prostora, bit }e vidljiv samo dio teksta. Izgled ipona{anje okvira s tekstom mo`e biti promijenjeno postavljanjem druga~ijih vrijedno-sti dvaju svojstava, MultiLine i ScrollBars, koja su dostupna samo za vrijeme kreiranjaaplikacije.

    Napomena Svojstvo ScrollBars ne smijete pomije{ati s kontrolama traka za pom-icanje, koje nisu dio okvira s tekstom i imaju vlastiti komplet svojstava.

    Postavljanje svojstva MultiLine na True omogu}uje okviru s tekstom da prihvati iliprika`e vi{e linija teksta tijekom izvo|enja aplikacije. Vi{elinijski okvir s tekstomautomatski upravlja prijelomom teksta sve dok ne postoji vodoravna traka za pomica-nje. Svojstvo ScrollBars po standardu ima vrijednost 0None. Automatski prijelomteksta po{te|uje korisnika od problema umetanja znakova za prekid linije na kraju lini-ja teksta. Kad je linija teksta dulja od onog {to mo`emo prikazati u jednoj liniji, okvir stekstom prelomit }e tekst u idu}u liniju.

    Znakovi za prekid linije ne mogu biti upisivani u prozor sa svojstvima tijekom kreira-

    nja aplikacije. Unutar potprograma, mo`ete kreirati prekid linije ubacivanjem oznakekraja retka (carriage return, ANSI kod 13) zajedno s oznakom za novi red (linefeed,ANSI kod 10). Tako|er mo`ete upotrijebiti i konstantu vbCrLf za ubacivanje kombi-nacije kraj reda/novi red. Na primjer, sljede}i potprogram ispisuje dvije linije teksta uvi{elinijski okvir s tekstom (Text1) kod u~itavanja forme:Sub Form_Load ()

    Text1.Text = Ovo su dvije linije _

    & vbCrLf & u okviru za tekst

    End Sub

    Rad s tekstom u okviru za tekstMjesto ubacivanja teksta i pona{anje ozna~enog teksta u okviru s tekstom mo`ete kon-trolirati svojstvima SelStart, SelLength i SelText. Ova svojstva dostupna su samo tije-kom izvo|enja aplikacije.

    Kad okvir za tekst prvi put dobije fokus, standardno mjesto ubacivanja teksta ili mjestokursora unutar okvira s tekstom je lijevo od postoje}eg teksta. Korisnik ga mo`e po-maknuti tipkovnicom ili mi{em. Ako okvir s tekstom izgubi i zatim ponovno dobijefokus, ovo mjesto bit }e tamo gdje je to odredio korisnik posljednji put.

    U nekim slu~ajevima, ovakvo pona{anje mo`e zbuniti korisnika. U aplikaciji za obra-du teksta, korisnik mo`e o~ekivati pojavljivanje novih karaktera iza postoje}eg teksta.U aplikaciji za unos podataka, korisnik mo`e o~ekivati da }e njegov upis teksta zami-jeniti postoje}i upis. Svojstva SelStart i SelLength dopu{taju vam promjene pona{anja

    tako da odgovaraju va{im potrebama.Vrijednost svojstva SelStart je broj koji ukazuje na mjesto ubacivanja teksta unutartekstualnog niza, gdje je 0 krajnji lijevi polo`aj. Ako svojstvo SelStart sadr`i vrijednostkoja je jednaka ili ve}a od broja karaktera unutar okvira s tekstom, mjesto ubacivanjateksta bit }e postavljeno iza posljednjeg karaktera, kako je prikazano na slici 3.7. Zaradnu verziju ovog primjera, pogledajte Text.frm u aplikaciji Controls.vbp.

    1. dio Temelji Visual Basica

    40 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    11/34

    Slika 3.7 Primjer mjesta ubacivanja teksta

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Vrijednost svojstva SelLength je broj koji odre|uje {irinu mjesta ubacivanja. Dodjelji-vanjem vrijednosti ve}e od 0 ovom svojstvu odgovaraju}i broj karaktera }e bitiodabran i ozna~en, po~ev{i od trenutnog mjesta ubacivanja. Slika 3.8 pokazuje odabirteksta.

    Slika 3.8 Primjer odabira teksta

  • 8/14/2019 03 - forme, kontrole i izbornici

    12/34

    Ako korisnik po~ne upisivati tekst dok je dio teksta ozna~en, taj dio bit }e zamijenjenupisanim. U nekim slu~ajevima, mo`ete po`eljeti zamijeniti ozna~eni tekst novim kori-ste}i naredbu lijepljenja. Svojstvo SelText je tekstualni niz kojeg mo`ete postavitiumjesto odabranog. Ako ne postoji odabrani tekst, SelText }e zalijepiti svoj tekst namjesto ubacivanja.

    Za vi{e informacija Za dodatne informacije o svojstvima kontrole okvira s tek-

    stom, pogledajte 7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Kontrole s izboromU ve}ini aplikacija potrebno je pru`iti neki izbor korisnicima, po~ev{i od jednostavnogda/ne, do odabira s liste koja sadr`ava nekoliko stotina izbora. Visual Basic uklju~ujenekoliko standardnih kontrola koje su korisne za predstavljanje izbora. Sljede}a tabelarezimira te kontrole i njihovu odgovaraju}u uporabu.

    za omogu}avanje ovih mogu}nosti odaberite ovu kontrolu

    Manji broj izbora u kojoj korisnik mo`e kontrolne ku}ice (check boxes)

    izabrati jednu ili vi{e stavki

    Manji broj izbora od kojih korisnik mo`e gumbi izbora (option boxes) upotrijebite okvireodabrati samo jedan (frames) za stvaranje dodatnih grupa

    Pomi~na lista izbora okvir s listom (list box)

    Pomi~na lista izbora zajedno s poljem za upis kombinirani okvir (combo box)teksta. Korisnik mo`e odabrati stavku s listeili upisati izbor u tekstualno polje.

    Odabir pojedinih izbora kontrolnim ku}icamaKontrolna ku}ica pokazuje je li odre|eni uvjet uklju~en ili isklju~en. Kontrolne ku}icemo`ete upotrijebiti u aplikaciji za davanje to~no/neto~no ili da/ne izbora korisnika. Po-{to su kontrolne ku}ice me|usobno neovisne, korisnik istovremeno mo`e odabrati `e-ljeni broj izbora. U primjeru na slici 3.9 podebljano (bold) i nako{eno (italic) mogu bitiistovremeno odabrani.

    Slika 3.9 Kontrolne ku}ice

    1. dio Temelji Visual Basica

    42 Vodi~ za programere

    ako je odabrano, Value = 1

  • 8/14/2019 03 - forme, kontrole i izbornici

    13/34

    Aplikacija Check BoxAplikacija s kontrolnim ku}icama Check Box koristi ove kontrole za utvr|ivanje ho}eli tekst biti ispisan u normalnom, podebljanom ili nako{enom pismu. Za radnu verzijuovog primjera, pogledajte Check.frm u aplikaciji Controls.vbp.

    Aplikacija sadr`i okvir s tekstom, natpis, naredbeni gumb i dvije kontrolne ku}ice, kao

    {to je prikazano na slici 3.10.Slika 3.10 Primjer kontrolnih ku}ica

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Sljede}a tabela sadr`i vrijednosti svojstava za objekte u ovoj aplikaciji.

    objekt svojstvo vrijednost

    Forma Name Caption frmCheck Check Box Example

    Okvir s tekstom Name Text txtDisplay Some sample text

    Prva kontrolna ku}ica Name Caption chkBold &Bold

    Druga kontrolna ku}ica Name Caption chkItalic &Italic

    Naredbeni gumb Name Caption cmdClose &Close

    Kad potvrdite Bold ili Italic, svojstvo kontrolne ku}ice Value dobiva vrijednost 1; kadje odzna~ena, svojstvo Value ima vrijednost 0. Standardna vrijednost je 0, pa ako nepromijenite svojstvo Value, kontrolne ku}ice }e biti prazne prvi put kad se pojave. Mo-`ete iskoristiti konstante vbChecked i vbUnchecked kao zamjenu za vrijednosti 1 i 0.

  • 8/14/2019 03 - forme, kontrole i izbornici

    14/34

    Doga|aji u aplikaciji s kontrolnim ku}icamaDoga|aj Click kontrolne ku}ice pojavljuje se onog trenutka kad kliknete na tu kon-trolu. Potprogram ovog doga|aja ispituje je li kontrolna ku}ica potvr|ena (je li Value =vbChecked). Ako je, tekst se pretvara u podebljano ili nako{eno pismo postavljanjemsvojstava Bold ili Italic objekta Font dobivenog od svojstva Font okvira s tekstom.Private Sub chkBold_Click ()

    If ChkBold.Value = vbChecked Then ako je potvr|en

    txtDisplay.Font.Bold = True

    Else ako nije potvr|en

    txtDisplay.Font.Bold = False

    End If

    End Sub

    Private Sub chkItalic_Click ()

    If ChkItalic.Value = vbChecked Then ako je potvr|en

    txtDisplay.Font.Italic = True

    Else ako nije potvr|en

    txtDisplay.Font.Italic = False

    End IfEnd Sub

    Grupiranje izbora gumbima izboraGumbi izbora daju korisniku skup od dva ili vi{e izbora. Za razliku od kontrolnihku}ica, me|utim, gumbi izbora trebali bi uvijek biti dio grupe: odabir jednog gumbaizbora trenutno poni{tava sve ostale izbore u grupi. Odre|ivanje grupe s gumbima izb-ora ka`e korisniku Ovdje je grupa mogu}nosti od kojih mo`e{ izabrati jednu i samojednu.

    Na primjer, u grupi s gumbima izbora prikazanoj na slici 3.11, korisnik mo`e odabratijednu od tri mogu}nosti.

    Slika 3.11 Odabir gumba izbora

    1. dio Temelji Visual Basica

    44 Vodi~ za programere

    Stvaranje grupa s gumbima izboraSvi gumbi izbora postavljeni na formu (dakle, ne u okvir ili okvir za sliku) ~ine jednugrupu. Ako `elite kreirati dodatne grupe s gumbima izbora, neke od njih moratepostaviti u okvire ili okvire za sliku.

  • 8/14/2019 03 - forme, kontrole i izbornici

    15/34

  • 8/14/2019 03 - forme, kontrole i izbornici

    16/34

    Spremnici kontrolaIako su kontrole neovisni objekti, postoji stanovit odnos roditeljdijete (parent andchild relationship) izme|u formi i kontrola. Slika 3.12 pokazuje kako gumbi izboramogu biti sadr`ani unutar forme ili kontrole okvira.

    Za razumijevanje pojma spremnika, trebate shvatiti da su sve kontrole djeca forme na

    kojoj se nalaze. Zapravo, ve}ina kontrola podr`ava svojstvo Parent koje se mo`e samopro~itati, a koje vra}a formu na kojoj se nalazi kontrola. Svojstva kontrole Left i Topodnose se na roditeljsku formu, i kontrole ne mogu biti pomaknute izvan granica rodi-telja. Pomicanje spremnika pomi~e i kontrole, a polo`aj kontrole koji je relativan uodnosu na svojstva spremnika Left i Top se ne mijenja jer se kontrole pomi~u zajednosa spremnikom.

    Potvr|ivanje ili odzna~ivanje gumb izboraGumb izbora mo`e biti odabran:

    Klikom mi{em tijekom izvo|enja.

    Dolaskom na grupu gumb izbora uz pomo} tipke TAB te kori{tenjem kursorskihtipaka za odabir gumba unutar grupe.

    Postavljanjem svojstva Value na vrijednost True programskim kodom:

    optChoice.Value = True

    Kori{tenjem pristupne pre~ice (shortcut key) koja je nazna~ena u sadr`aju natpisa.

    Da bi gumb izbora bio predodre|en u grupi, postavite njegovo svojstvo Value na Truetijekom izrade aplikacije. On }e ostati odabran sve dok korisnik ne odabere neki drugigumb ili do|e do promjene programskim kodom.

    Za onemogu}avanje gumba izbora, postavite njegovo svojstvo Enabled na False. Tije-kom rada aplikacije on }e imati zadimljen natpis, {to ozna~ava njegovu nedostupnost.

    Aplikacija OptionsForma prikazana na slici 3.13 koristi gumbe izbora za utvr|ivanje tipa procesora ioperativnog sustava za zami{ljeno ra~unalo. Kad korisnik odabere gumb izbora u jed-noj ili drugoj grupi, sadr`aj kontrole natpisa se mijenja tako da odra`ava trenutni izbor.Za radnu verziju ovog primjera, pogledajte Option.frm u aplikaciji Controls.vbp.

    1. dio Temelji Visual Basica

    46 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    17/34

    Slika 3.13 Primjer sa gumbima izbora

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Sljede}a tablica sadr`i vrijednosti svojstava za objekte ove aplikacije.

    objekt svojstvo vrijednost

    natpis (label) Name Caption lblDisplay (prazno)

    naredbeni gumb Name Caption cmdClose &Close

    prvi gumb izbora Name Caption opt486 &486

    drugi gumb izbora Name Caption Value opt586 &Pentium True

    tre}i gumb izbora Name Caption opt686 P&entium Pro

    okvir (frame) Name Caption fraSystem &Operatimg System

    ~etvrti gumb izbora Name Caption optWin95 &Windows 95

    peti gumb izbora Name Caption Value optWinNT Windows &NT True

  • 8/14/2019 03 - forme, kontrole i izbornici

    18/34

    Doga|aji u aplikaciji OptionsAplikacija Options odgovara na doga|aje na sljede}i na~in:

    Doga|aji Click za prva tri gumba izbora dodjeljuju odgovaraju}i opis u tekstovnuvarijablu forme, strComputer.

    Doga|aji Click za posljednja dva gumba izbora dodjeljuju odgovaraju}i opis udrugu tekstovnu varijablu forme, strSystem.

    Klju~ ovakvom pristupu je kori{tenje dvije varijable na nivou forme, strComputer istrSystem. Ove varijable sadr`e razli~ite tesktovne nizove, ovisno o tome koji je gumbizbora odabran.

    Svaki put kad je odabran novi gumb izbora, programski kod u doga|aju Click a`uriraodgovaraju}u varijablu:

    Private Sub opt586_Click()

    strComputer = Pentium

    Call DisplayCaption

    End Sub

    Ovaj kod poziva potprogram, nazvan DisplayCaption, koji povezuje dvije varijable ia`urira sadr`aj svojstva natpisa Caption:

    Sub DisplayCaption()

    lblDisplay.Caption = You selected, a & _

    strComputer & running & strSystem

    End Sub

    Ovaj potprogram se koristi jer je postupak a`uriranja svojstva Caption u biti jednak zasvih pet gumb izbora, jedino se vrijednost varijable mijenja od slu~aja do slu~aja.Ovakav postupak po{te|uje vas ponavljanja istog programskog koda za svaki doga|aj

    Click.

    Za vi{e informacija O varijablama i potprograma detaljno se raspravlja u 5.poglavlju Osnove programiranja.

    Kori{tenje okvira s popisom i

    kombiniranih okviraOkviri s popisom (list box) i kombinirani okviri (combo box) daju listu izbora korisni-ku. U pravilu, stavke su ispisane okomito u jednoj koloni, iako mo`ete napraviti i

    okvire sa vi{e kolona. Ako je broj stavki ve}i od onog {to okvir s popisom ili kombini-rani okvir mogu prikazati, u kontroli }e se automatski pojaviti trake za pomicanje. Ko-risnik se tada mo`e kretati po listi s lijeva na desno ili gore dolje. Slika 3.14 prikazu-je jednokolonski okvir s popisom.

    1. dio Temelji Visual Basica

    48 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    19/34

    Slika 3.14 Jednokolonski okvir s popisom

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Kombinirani okvir spaja mogu}nosti okvira s tekstom i okvira s popisom. Ova kontro-la dopu{ta korisniku da odabere stavku upisom teksta u kombinirani okvir ili biranjemstavke sa popisa. Slika 3.15 prikazuje kombinirani okvir.

    Slika 3.15 Kombinirani okvir

    U usporedbi s nekim drugim kontrolama koje sadr`e jednostruku vrijednost, na primjersvojstvo Caption kontrole natpisa ili svojstvo Text kontrole okvira s tekstom, okviri spopisom i kombinirani okviri sadr`e vi{e vrijednosti ili zbirku vrijednosti. Ove kont-role imaju ugra|ene metode za dodavanje, brisanje i pronala`enje vrijednosti iz njiho-

    vih zbirki tijekom rada aplikacije. Za dodavanje nekoliko stavki u okvir s popisomnazvan List1, programski kod bi mogao izgledati ovako:

    List1.AddItem Paris

    List1.AddItem New York

    List1.AddItem San Francisco

    Okviri s popisom i kombinirani okviri su djelotvoran na~in predstavljanja velikogbroja stavki korisniku na ograni~enom prostoru.

    Za vi{e informacija Za dodatne informacije o okvirima s popisom i kombiniranimokvirima, pogledajte 7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

  • 8/14/2019 03 - forme, kontrole i izbornici

    20/34

    Kori{tenje kliznih traka

    kao ulaznih jedinicaIako su klizne trake ~esto vezane uz okvire s tekstom ili prozore, ponekad }ete vidjeti ikako se koriste kao ulazne jedinice. Budu}i da ove kontrole prikazuju trenutni polo`ajna skali, one se mogu koristiti zasebno za unos podataka u aplikaciji na primjer, zakontrolu ja~ine zvuka ili za prilago|avanje boja na slici. Kontrole HScrollBar (vodor-avna traka) i VScrollBar (okomita traka) djeluju neovisno od ostalih kontrola i imajuvlastitu zbirku doga|aja, svojstava i postupaka. Kontrole kliznih traka nisu iste kao ione ugra|ene u okvire s tekstom, okvire s popisom, kombinirane okvire ili MDI forme(okviri s tekstom i MDI forme imaju svojstvo ScrollBars uz pomo} kojeg mo`etedodati ili maknuti klizne trake ugra|ene u te kontrole).

    Smjernice Windows su~elja savjetuju kori{tenje kontrola kliza~a (slider) kao ulaznihjedinica umjesto kliznih traka. Primjeri kontrola kliza~a mo`e se vidjeti u kontrolnomprozoru (control panel) Windowsa 95/98. Kontrola kliza~a takvog izgleda uklju~ena jeu Professional i Enterprise verzije Visual Basica.

    Za vi{e informacija Za dodatne informacije o kontrolama kliznih traka, pogledajte7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Kontrole za prikaz slika i grafikeBudu}i da Windowsi grafi~ko korisni~ko su~elje, va`no je imati na~in prikazivanjagrafike i slika u su~elju va{e aplikacije. Visual Basic uklju~uje ~etiri kontrole kojepojednostavljuju rad s grafikom; kontrolu okvira za sliku (picture box), kontrolu slike(image), kontrolu lika (shape) i kontrolu linije (line).

    Kontrole slike, lika i linije ponekad se nazivaju i grafi~kim kontrolama lake kategori-je. One zahtijevaju manje sistemskih izvora i zato prikazuju objekte ne{to br`e odkontrole okvira za sliku; sadr`e dio svojstava, postupaka i doga|aja dostupnih u okviruza sliku. Svaka od ovih kontrola opremljena je za odre|enu namjenu.

    za pru`anje ove mogu}nosti iskoristite ovu kontrolu

    spremnik drugih kontrola okvir za sliku

    postupci tiskanja ili crtanja okvir za sliku

    prikaz slike kontrola slike ili okvir za sliku

    prikaz jednostavnog grafi~kog elementa kontrola lika ili linije

    1. dio Temelji Visual Basica

    50 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    21/34

    Rad s kontrolom okvira za slikuGlavna svrha kontrole okvira za sliku je prikazivanje slike korisniku. Trenutna slikakoja se prikazuje odre|ena je svojstvom Picture. Svojstvo Picture sadr`i ime datoteke(i stazu, ako je potrebno) slike koju `elite prikazati.

    Napomena Objekti forme tako|er imaju svojstvo Picture koje mo`e biti

    pode{eno tako da prikazuje sliku direktno na podlozi forme.Za prikaz i zamjenu slike tijekom rada aplikacije, iskoristit }ete funkciju LoadPictureza postavljanje vrijednosti svojstva Picture. Dovoljno je dati ime (i stazu, ako je po-trebno) slike, a funkcija LoadPicture }e se pobrinuti za detalje u~itavanja i prikazivanjaslike:picMain.Picture = LoadPicture(VANGOGH.BMP)

    Kontrola okvira za sliku ima svojstvo AutoSize koje, ako je postavljeno na True, uzro-kuje automatsku promjenu veli~ine okvira za sliku tako da odgovara dimenzijamasadr`aja. Kreirajte svoju formu s posebnom pa`njom ako namjeravate koristiti okvir zasliku sa uklju~enim svojstvom AutoSize. Slika }e promijeniti veli~inu bez obzira naostale kontrole na formi, vjerojatno uzrokuju}i neo~ekivane rezultate, kao {to je prekri-vanje drugih kontrola. Dobra je ideja isprobavanje ovog postupka u~itavanjem svakeod slika tijekom izrade aplikacije.

    Kori{tenje okvira za sliku kao spremnikaKontrola okvira za sliku mo`e se iskoristiti i kao spremnik drugih kontrola. Kao i kodkontrole okvira, mo`ete postaviti druge kontrole unutar okvira za sliku. Tako sadr`anekontrole pomi~u se sa okvirom za sliku i njihova svojstva Top i Left relativna su uodnosu na okvir za sliku, a ne na formu.

    Uobi~ajena upotreba okvira za sliku kao spremnika je kao alatna traka ili statusnatraka. Na okvir mo`ete postaviti kontrole natpisa koje }e djelovati kao gumbi, ili

    dodati natpise koji }e prikazivati poruke o trenutnom stanju. Postavljanjem svojstvaAlign na Top, Bottom, Left ili Right okvir za sliku }e se zalijepiti uz rub forme.Slika 3.16 prikazuje okvir za sliku sa svojstvom Align postavljenim na Bottom. Ovajokvir sadr`ava dvije kontrole natpisa koje mogu biti iskori{tene za prikaz statusnihporuka.

    Slika 3.16 Okvir za sliku kori{ten kao statusna traka

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Kontrole natpisa Kontrole okvira za sliku

  • 8/14/2019 03 - forme, kontrole i izbornici

    22/34

    Ostale upotrebe okvira za slikuOkvir za sliku ima nekoliko postupaka koji ga ~ine korisnim u druge svrhe. Zamisliteokvir za sliku kao prazno platno po kojem mo`ete bojati, crtati ili pisati. Jedna kontro-la mo`e biti iskori{tena za prikaz teksta, grafike ili ~ak jednostavnije animacije.

    Postupak Print omogu}uje vam usmjeravanje teksta prema okviru za sliku isto kao i

    prema pisa~. Vi{e svojstava pisma dostupno vam je za nadzor svojstava ispisa tekstapostupkom Print; postupak Cls mo`e biti iskori{ten za brisanje ispisa.

    Postupci Circle, Line, Point i Pset mogu biti iskori{teni za crtanje grafike u okviru zasliku. Svojstva kao {to su DrawWidth, FillColor i FillStyle omogu}uju vam prilagodbuizgleda grafike.

    Animacija mo`e biti kreirana kori{tenjem svojstva PaintPicture koje }e pomicati slikeunutar kontrole okvira za sliku i brzim mijenjanjem nekoliko razli~itih slika.

    Za vi{e informacija Za dodatne informacije o kontroli okvira za sliku, pogledajte7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Grafi~ke kontrole lake kategorijeKontrole slike, lika i linije smatraju se kontrolama lake kategorije; razlog je podr{kasamo dijelu svojstava, postupaka i doga|aja koje podr`ava okvir za sliku. Zbog toga,ove kontrole uobi~ajeno zahtijevaju manje sistemskih izvora i u~itavaju slike br`e odokvira za sliku.

    Kori{tenje kontrole slike umjesto okvira za slikuKontrola slike sli~na je kontroli okvira za sliku, ali koristi se samo za prikazivanjeslika. Nema sposobnost djelovanja kao spremnik drugih kontrola, i ne podr`avanapredne postupke okvira za sliku.

    Slike se u~itavaju u kontrolu slike kao i u okvir za sliku: tijekom izrade aplikacije,upi{ite ime slike i stazu u svojstvo Picture; tijekom rada aplikacije iskoristite funkcijuLoadPicture.

    Pona{anje promjene veli~ine kontrole slike razlikuje se od okvira za sliku. Kontrolaslike ima svojstvo Stretch dok okvira za sliku ima svojstvo AutoSize. Postavljanjesvojstva AutoSize na True uzrokuje kod okvira za sliku promjenu veli~ine premadimenzijama slike; postavljanje na False ima za posljedicu odsijecanje slike (vidljiv jesamo dio slike). Kad je postavljeno na False (po standardu), svojstvo Stretch kontrole

    slike ima za posljedicu promjenu veli~ine slike prema veli~ini kontrole, {to mo`eprouzro~iti izobli~enje slike.

    Za vi{e informacija Za dodatne informacije o kontroli slike pogledajte 7. poglavljeKori{tenje standardnih kontrola Visual Basica.

    1. dio Temelji Visual Basica

    52 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    23/34

    Kori{tenje kontrole slike za stvaranje gumbKontrola slike tako|er prepoznaje doga|aj Click, tako da je mo`ete koristiti umjestonaredbenog gumba. To je zgodan na~in stvaranja gumba sa slikom umjesto s natpisom.Grupiranje vi{e kontrola slike vodoravno pri vrhu ekrana obi~no unutar okvira zasliku omogu}uje vam stvaranje alatne trake u va{oj aplikaciji.

    Primjer Test Buttons pokazuje kontrolu slike koju korisnik mo`e odabrati kao {to biodabrao naredbeni gumb. Kad se forma prvi put prika`e, kontrola slike prikazuje jednuod tri ikone semafora iz biblioteke Icon instalirane s Visual Basicom. Svaki put kad seklikne na kontrolu slike, bit }e prikazana druga~ija ikona (za radnu verziju ovog prim-jera, pogledajte Button.frm u aplikaciji Controls.vbp).

    Ako pregledate formu tijekom izrade aplikacije, vidjet }ete da ona zapravo sadr`i svetri ikone koje su slo`ene u hrpu jedna iznad druge. Mijenjanjem svojstva Visible naj-gornje ikone u False, omogu}ujete idu}oj ikoni (sa svojstvom Visible postavljenim naTrue) pojavljivanje na vrhu.

    Slika 3.17 prikazuje kontrolu slike s jednom od ikona semafora (Trffc10a.ico).

    Slika 3.17 Kontrola slike s ikonom semafora

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Za stvaranje okvira oko kontrole slike, postavite svojstvo BorderStyle na 1FixedSingle.

    Napomena Za razliku od naredbenih gumb, kontrole slike ne izgledaju pritis-nute kad kliknete na njih. To zna~i da ako ne promijenite sliku doga|ajemMouseDown, nema vidljive oznake korisniku da je pritisnuo gumb.

    Za vi{e informacija Za informacije o prikazivanju slika i grafike u kontroli slike,pogledajte 7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Kori{tenje kontrola lika i linijeKontrole lika i linije su korisne kod crtanja grafi~kih elemenata na povr{ini forme. Ovekontrole ne podr`avaju nikakve doga|aje; njihova namjena je isklju~ivo ukrasna.

    Postoji nekoliko svojstava za reguliranje pojavljivanja kontrole lika. Postavljanjemsvojstva Shape, ova kontrola mo`e biti prikazana kao pravokutnik, kvadrat, elipsa,krug, te pravokutnik ili kvadrat sa zaobljenim kutovima. Svojstva BorderColor i

    FillColor mogu odrediti boju; svojstva BorderStyle, BorderWidth, FillStyle iDrawMode odre|uju kako }e lik biti iscrtan.

    Kontrola linije je sli~na kontroli lika, ali se mo`e koristiti samo za crtanje ravnih linija.

    Za vi{e informacija Za dodatne informacije o kontrolama lika i linije pogledajte 7.poglavlje Kori{tenje standardnih kontrola Visual Basica.

  • 8/14/2019 03 - forme, kontrole i izbornici

    24/34

    Aplikacija ImagesForma prikazana na slici 3.18 koristi ~etiri kontrole slike, kontrolu lika, okvir za sliku inaredbeni gumb. Kad korisnik odabere neki od karta{kih simbola, kontrola lika }eozna~iti taj simbol, a u okviru za sliku }e se pojaviti opis. Za radnu verziju ovog pri-mjera, pogledajte Images.frm u aplikaciji Controls.vbp.

    Slika 3.18 Primjer kontrola slike i lika

    1. dio Temelji Visual Basica

    54 Vodi~ za programere

    Sljede}a tablica daje vrijednosti svojstava za objekte ove aplikacije.

    objekt svojstvo vrijednost

    okvir za sliku Name Align picStatus Bottomprva kontrola slike Name Picture imgClub Spade.ico

    druga kontrola slike Name Picture imgDiamondDiamond.ico

    tre}a kontrola slike Name Picture imgHeart Heart.ico

    ~etvrta kontrola slike Name Picture imgSpade Spade.ico

  • 8/14/2019 03 - forme, kontrole i izbornici

    25/34

    objekt svojstvo vrijednost

    kontrola lika Name Shape Border shpCard 4-RoundedWidth Height Width Rectangle 2 735 495

    naredbeni gumb Name Caption cmdClose &Close

    Doga|aji u aplikaciji ImagesAplikacija Images odgovara na doga|aje kako slijedi:

    Doga|aj Click u svakoj od kontrola slike vrijednost svog svojstva Left dodjeljujesvojstvu Left kontrole lika, mi~u}i kontrolu lika iznad slike.

    Poziva se postupak Cls okvira za sliku, koji bri{e trenutni sadr`aj statusne trake.

    Poziva se postupak Print okvira za sliku, koji ispisuje novi tekst u statusnoj traci.

    Programski kod u doga|aju Click kontrole slike izgleda ovako:

    Private Sub imgHeart_Click()

    shpCard.Left = imgClub.Left

    picStatus.Cls

    picStatus.Print Selected: Club

    shpCard.Visible = True

    End Sub

    Uo~ite da prva linija doga|aja Click dodjeljuje vrijednost (svojstva Left kontrole slike)svojstvu Left kontrole lika koriste}i operator =. Idu}e dvije linije pozivaju postupke,tako da operator nije potreban. U tre}oj liniji, vrijednost (Selected: Club) je argu-ment postupka Print.

    Postoji jo{ jedna linija koda u aplikaciji koja je zanimljiva; nalazi se u doga|aju FormLoad.

    shpCard.Visible = False

    Postavljanjem svojstva Visible kontrole lika na False, kontrola lika }e biti nevidljivasve dok se ne klikne na neku od slika. Svojstvo Visible postavlja se na True kaoposljednji korak u doga|aju Click kontrole slike.

    Za vi{e informacija Za dodatne informacije o svojstvima, postupcima idoga|ajima pogledajte 5. poglavlje Osnove programiranja.

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

  • 8/14/2019 03 - forme, kontrole i izbornici

    26/34

    Dodatne kontroleU alatni okvir Visual Basica uklju~eno je nekoliko drugih standardnih kontrola. Nekekontrole su korisne za rad s velikim brojem podataka koji se nalaze u vanjskim baza-ma. Druge kontrole mogu biti iskori{tene za pristup datote~nom sustavu Windowsa.Ostale kontrole ne mogu se svrstati u odre|enu vrstu, ali su unato~ tome korisne.

    U aplikaciji Visual Basica tako|er mo`ete koristiti ActiveX kontrole, prethodno nazi-vane korisni~ke ili OLE kontrole, na isti na~in kao {to koristite i standardne kontrole.Verzije Visual Basica Professional i Enterprise uklju~uju nekoliko ActiveX kontrolakao i mogu}nost izgradnje vlastitih kontrola. Dodatne ActiveX kontrole za bilo kojumogu}u svrhu dostupne su kod brojnih prodava~a.

    Za vi{e informacija Za dodatne informacije o kori{tenju ActiveX kontrolapogledajte 4. poglavlje Upravljanje projektima.

    Kontrole pristupa podacimaU dana{njem poslu, ve}ina podataka spremljena je u jednoj ili vi{e sredi{njih bazapodataka. Visual Basic uklju~uje nekoliko kontrola za pristup podacima koje mogupristupiti ve}ini popularnih baza podataka, uklju~uju}i Microsoft Access i SQLposlu`itelj.

    Kontrola ADO Data koristi se za povezivanje s bazom podataka. Shvatite je kao cje-vovod izme|u baze podataka i drugih kontrola na va{oj formi. Svojstva, postupci idoga|aji ove kontrole omogu}uju vam kretanje i obradu vanjskih podataka iz va{eaplikacije.

    Kontrola DataList sli~na je kontroli okvira s popisom. Kad se koristi u suradnji skontrolom ADO Data, mo`e biti automatski popunjena popisom podataka iz poljavanjske baze podataka.

    Kontrola DataCombo sli~i kombinaciji kontrole DataList i okvira s tekstom. Oda-brani tekst u okviru s tekstom mo`e biti mijenjan, a promjene }e se pojaviti u bazipodataka na popisu.

    Kontrola DataGrid prikazuje podatke u matrici ili tablici. Kad se koristi u suradnji skontrolom ADO Data, predstavlja podatke iz vanjske baze podataka u vi{e poljakoji se mogu mijenjati.

    Kontrola Microsoft Hierarchical FlexGrid je jedinstvena kontrola za prikazivanjevi{estrukih pregleda podataka. Shvatite je kao kombinaciju mre`e i stabla. Tijekomrada aplikacije, korisnik mo`e promijeniti raspored redova i kolona za pru`anje

    druga~ijih pogleda na podatke.Za vi{e informacija Za dodatne informacije o kontrolama pristupa podacima,pogledajte 7. poglavlje Kori{tenje standardnih kontrola Visual Basica. Za vi{e infor-macija o radu s vanjskim podacima, potra`ite vodi~ Visual Basic Data Access Guide.

    1. dio Temelji Visual Basica

    56 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    27/34

    Kontrole datote~nog sustavaVisual Basic uklju~uje tri kontrole za dodavanje mogu}nosti baratanja datotekama uva{u aplikaciju. Ove kontrole obi~no se koriste zajedno za pru`anje pregleda pogona,direktorija i datoteka; imaju posebna svojstva i doga|aje koji ih povezuju.

    Kontrola okvira s popisom pogonskih ure|aja (DriveListBox) izgleda kao kombini-

    rani okvir. Korisnik mo`e izabrati pogon sa spu{taju}eg popisa pogona. Kontrola okvira s popisom direktorija (DirListBox) sli~na je okviru s popisom, ali

    ima ugra|enu mogu}nost prikazivanja popisa direktorija na trenutno odabranompogonu.

    Kontrola okvira s popisom datoteka (FileListBox) tako|er izgleda kao okvir s popi-som i sadr`i popis datoteka u odabranom direktoriju.

    Napomena Ove kontrole postoje prvenstveno zbog sukladnosti s aplikacijamakreiranim u ranijim verzijama Visual Basica. Kontrola op}enitog dijalo{kogokvira pru`a jednostavniji postupak pristupa datotekama. Za vi{e informacija okontroli op}enitog dijalo{kog okvira pogledate sljede}i dio Raznovrsne kon-trole.

    Raznovrsne kontroleU Visual Basic je uklju~eno nekoliko ostalih standardnih kontrola. Svaka od njih imajedinstvenu svrhu.

    Kontrola mjera~a vremena (timer control) mo`e biti iskori{tena za stvaranje doga-|aja u va{oj aplikaciji u odre|eno vrijeme. To je korisno kod izvo|enja program-skog koda bez potrebe za akcijom korisnika.

    Kontrola OLE spremnika (OLE container control) je jednostavan na~in dodavanja

    mogu}nosti va{oj aplikaciji kao {to su povezivanje i umetanje. Kroz kontrolu OLEspremnika, pru`ate pristup funkcionalnostima bilo koje aplikacije koja podr`avaOLE (object linking and embeding, povezivanje i umetanje objekata) kao {to suMicrosoft Excel, Word i puno drugih.

    Kontrola op}eg dijalo{kog okvira (common dialog control) dodaje u va{u aplikacijudijalo{ke okvire za odabir datoteka, boja, pisama i funkcija ispisa.

    Za vi{e informacija Za dodatne informacije o bilo kojoj standardnoj kontroli,pogledajte 7. poglavlje Kori{tenje standardnih kontrola Visual Basica.

    Razumijevanje fokusaFokus je mogu}nost prijema informacije od korisnika putem mi{a ili tipkovnice. Kadobjekt ima fokus, mo`e primiti podatke od korisnika. U su~elju Microsoft Windowsa,u isto vrijeme mo`e raditi vi{e aplikacija, ali samo aplikacija s fokusom ima aktivnunaslovnu traku i mo`e primati podatke od korisnika. Na formi Visual Basica s nekolikookvira s tekstom, samo okvir s tekstom koji ima fokus }e prikazati tekst upisan upotre-bom tipkovnice.

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

  • 8/14/2019 03 - forme, kontrole i izbornici

    28/34

    Doga|aji GotFocus i LostFocus pojavljuju se kad objekt dobije ili izgubi fokus. Ovedoga|aje podr`avaju forme i ve}ina kontrola.

    doga|aj opis

    GotFocus Pojavljuje se kad objekt dobije fokus.

    LostFocus Pojavljuje se kad objekt izgubi fokus. Potprogram doga|aja LostFocu

    u pravilu koristi za utvr|ivanje i potvrdu novih podataka, ili za zamjeili promjenu uvjeta koji su odre|eni u potprogramu GotFocus istogobjekta.

    Objekt mo`e dobiti fokus na sljede}e na~ine:

    Odabirom objekta tijekom rada aplikacije.

    Kori{tenjem pristupnog znaka za odabir objekta tijekom rada aplikacije.

    Kori{tenjem postupka SetFocus u programskom kodu.

    Mo`ete vidjeti imaju li objekti fokus. Na primjer, kad naredbeni gumbi imaju fokus

    pojavljuju se s ozna~enim rubom oko natpisa (pogledajte sliku 3.19).Slika 3.19 Naredbeni gumb s vidljivim fokusom

    1. dio Temelji Visual Basica

    58 Vodi~ za programere

    naredbeni gumb

    ima fokus

    Objekt mo`e dobiti fokus samo ako su svojstva Enabled i Visible postavljena na True.Svojstvo Enabled dopu{ta objektu da odgovara na doga|aje uzrokovane akcijom ko-risnika kao {to su upotreba tipkovnice ili mi{a. Svojstvo Visible odre|uje ho}e liobjekt biti vidljiv na ekranu.

    Napomena Forma mo`e imati fokus samo ako ne sadr`i ni jednu kontrolu kojamo`e dobiti fokus.

    Doga|aj Validate u kontrolamaKontrole imaju i doga|aj Validate, koji se pojavljuje prije nego {to kontrola izgubi fo-kus. Unato~ tome, ovaj doga|aj se pojavljuje samo ako je svojstvo CausesValidation

    kontrole koja }e dobiti fokus postavljeno na True. U ve}ini slu~ajeva, budu}i da sedoga|aj Validate pojavljuje prije gubljenja fokusa, to je prikladniji na~in od kori{tenjadoga|aja LostFocus za provjeru valjanosti gubitka fokusa. Za vi{e informacija, po-gledajte Provjera valjanosti podataka u kontroli ograni~avanjem fokusa u 7. po-glavlju Kori{tenje standardnih kontrola Visual Basica.

  • 8/14/2019 03 - forme, kontrole i izbornici

    29/34

    Kontrole koje ne mogu imati fokusNeke kontrole, kao {to su kontrole lake kategorije, ne mogu dobiti fokus. Kontrolelake kategorije uklju~uju:

    Kontrolu okvira (frame control)

    Kontrolu slike (image control)

    Kontrolu natpisa (label control)

    Kontrolu linije (line control)

    Kontrolu lika (shape control)

    Kontrole koje su nevidljive tijekom rada aplikacije, kao kontrola mjera~a vremena(timer control), tako|er ne mogu dobiti fokus.

    Postavljanje tabulatornog redaTabulatorni red(tab order) je red po kojem se korisnik mo`e kretati od jedne do druge

    kontrole kori{tenjem tipke TAB. Svaka forma ima svoj tabulatorni red. U pravilu, tabu-latorni red odgovara redoslijedu kreiranja kontrola.

    Na primjer, pretpostavimo da ste kreirali dva okvira s tekstom, Text1 i Text2, te zatimnaredbeni gumb, Command1. Kad se aplikacija pokrene, kontrola Text1 imat }e fokus.Pritisak na tipku TAB pomaknut }e fokus po kontrolama redoslijedom kojim sukreirane, kako je prikazano na slici 3.20.

    Slika 3.20 Primjer tabulatornog reda

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Za promjenu tabulatornog reda kontrole, podesite svojstvo TabIndex. Svojstvo Tab-Index kontrole odre|uje gdje je postavljena u tabulatornom redu. U pravilu, prva krei-rana kontrola ima vrijednost svojstva TabIndex 0, druga 1 i tako dalje. Kad promijenite

    redoslijed kontrole u tabulatornom redu, Visual Basic automatski mijenja mjesta ostal-ih kontrola u tabulatornom redu tako da odra`ava ubacivanja i brisanja. Na primjer,ako kontrolu Command1 postavite kao prvu u tabulatornom redu, svojstva TabIndexostalih kontrola }e automatski biti pove}ana za jedan, kao {to je prikazano u sljede}ojtablici.

    pritisak na tipku TAB

    pomi~e fokus na kontrolu

    ponovni pritisak na tipku

    TAB pomi~e fokus na kon-

    trolu Command1

  • 8/14/2019 03 - forme, kontrole i izbornici

    30/34

    Kontrola TabIndex prije promjene TabIndex poslije promjene

    Text1 0 1

    Text2 1 2

    Command1 2 0

    Najve}a vrijednost svojstva TabIndex je uvijek za jedan manja od broja kontrola u ta-bulatornom redu (jer brojanje po~inje od 0). ^ak i ako svojstvu TabIndex dodijelitevrijednost ve}u od broja kontrola, Visual Basic tu vrijednost pretvara u broj za jedanmanji od broja kontrola.

    Napomena Kontrole koje ne mogu dobiti fokus, kao i kontrole koje suonemogu}ene ili nevidljive, nemaju svojstvo TabIndex i nisu uklju~ene u tabulatornired. Kad korisnik priti{}e tipku TAB, takve kontrole se preska~u.

    Uklanjanje kontrole iz tabulatornog redaUobi~ajeno, pritisak tipke TAB tijekom rada aplikacije odabire idu}u kontrolu po tabu-

    latornom redu. Kontrolu iz tabulatornog reda mo`ete udaljiti postavljanjem njezinogsvojstva TabStop na False (0).

    Kontrola ~ije je svojstvo TabStop postavljeno na False i dalje zadr`ava svoje mjesto utabulatornom redu, iako }e biti presko~ena kru`enjem po kontrolama tipkom TAB.

    Napomena Grupa gumb izbora ima jedinstven odabir tipkom TAB. Potvr|enigumb (onaj ~ije je svojstvo Value postavljeno na True) automatski ima svojstvoTabStop postavljeno na True, a ostali gumbi u grupi imaju svojstvo TabStoppostavljeno na False.

    Osnove izbornika@elite li da va{a aplikacija omogu}i niz naredbi korisniku, izbornici nude prikladan idosljedan na~in grupiranja naredbi te jednostavan na~in pristupa korisnika.

    Slika 3.21 pokazuje dijelove su~elja s izbornicima na formi bez imena.

    Traka s izbornicima (menu bar) pojavljuje se odmah ispod naslovne trake (title bar)forme i sadr`ava jedan ili vi{e naslova izbornika (menu titles). Kad kliknete na naslovizbornika (na primjer File) spu{ta se izbornik koji sadr`i niz stavki. Stavke izbornikamogu sadr`avati naredbe (na primjer New ili Exit), linije za razdvajanje (separatorbars), i naslove s podizbornicima. Svaka stavka izbornika koju vidi korisnik odgovarakontroli izbornika koju odre|ujete u editoru izbornika (menu editor, opisano kasnije uovom poglavlju).

    1. dio Temelji Visual Basica

    60 Vodi~ za programere

  • 8/14/2019 03 - forme, kontrole i izbornici

    31/34

    Slika 3.21 Dijelovi su~elja s izbornicima na formi Visual Basica

    3. poglavlje Forme, kontrole i izb

    Vodi~ za programer

    Za lak{e kori{tenje va{e aplikacije, trebali bi grupirati stavke izbornika prema njihovimfunkcijama. Na slici 3.21, na primjer, naredbe New, Open i Save As... vezane zadatoteke nalaze se u izborniku File.

    Neke stavke izbornika odmah pokre}u akcije; na primjer, stavka Exit izbornika Filezatvara aplikaciju. Ostale stavke izbornika prikazuju dijalo{ki okvir prozor koji tra`i

    podatak od korisnika potreban kako bi aplikacija mogla obaviti akciju. Takve stavkeizbornika trebale bi biti ispisane s to~kicama u nastavku (...). Na primjer, kadodaberete stavku Save As... u izborniku File, pojavit }e se dijalo{ki okvir Save File As.

    Kontrola izbornika je objekt; kao i ostali objekti ima svojstva uz pomo} kojih se moguodrediti njezin izgled i pona{anje. Svojstva Caption, Enabled, Visible, Checked idruga, mo`ete odrediti tijekom izrade ili rada aplikacije. Kontrole izbornika sadr`esamo jedan doga|aj, doga|aj Click, koji se poziva kad je stavka izbornika odabranami{em ili tipkovnicom.

    Za vi{e informacija Za dodatne informacije o kontrolama izbornika, pogledajteStvaranje izbornika editorom izbornika u 6. poglavlju Stvaranje korisni~kog

    su~elja.

    naslov izbornika

    stavka izbornika traka s izbornicima

    linija za razdvajanje

    izbornik

  • 8/14/2019 03 - forme, kontrole i izbornici

    32/34

    Izbornici pre~icaIzbornik pre~ica (popup menu) je plivaju}i izbornik koji se prikazuje iznad forme,neovisno o traci s izbornicima, kao {to je prikazano na slici 3.22. Stavke ispisane upomo}nom izborniku ovise o polo`aju pokaziva~a kad je pritisnuta desna tipka mi{a;zbog toga se izbornici pre~ica ~esto nazivaju i kontekstni izbornici (context menus). (UWindowsima 95/98, kontekstne izbornike mo`ete aktivirati klikom desnom tipkommi{a.) Pomo}ne izbornike trebate koristiti kao pru`anje efikasnog postupka za pristupuobi~ajenim, prikladnim naredbama. Na primjer, ako kliknete desnom tipkom mi{a naokvir s tekstom, pojavit }e se kontekstni izbornik, kao {to je prikazano na slici 3.22.

    Slika 3.22 Izbornik pre~ica

    1. dio Temelji Visual Basica

    62 Vodi~ za programere

    Svaki izbornik koji ima barem jednu stavku mo`e biti prikazan tijekom rada aplikacije

    kao izbornik pre~ica. Za prikaz izbornika, iskoristite postupak PopupMenu.

    Za vi{e informacija Za dodatne informacije o kreiranju pomo}nih izbornika pogle-dajte Stvaranje izbornika editorom izbornika u 6. poglavlju Stvaranje korisni~kogsu~elja.

    Kori{tenje editora izbornikaUz pomo} editora izbornika mo`ete dodati nove stavke u postoje}e izbornike, zamije-niti postoje}e naredbe vlastitim, kreirati nove izbornike i trake s izbornicima, te promi-jeniti i obrisati postoje}e izbornike i trake izbornika. Glavna prednost editora izbornikaje njegova jednostavnost upotrebe. Mo`ete prilagoditi izbornike na potpuno interakti-van na~in koji uklju~uje vrlo malo programiranja.

    Kako prikazati editor izbornika

    U izborniku Tools odaberite stavku Menu Editor.

    Ovaj postupak }e otvoriti editor izbornika, prikazan na slici 3.23.

  • 8/14/2019 03 - forme, kontrole i izbornici

    33/34

  • 8/14/2019 03 - forme, kontrole i izbornici

    34/34

    Ovaj dijalo{ki okvir se prikazuje kad u programskom kodu pozovete funkciju MsgBox.Programski kod za prikaz dijalo{kog okvira prikazanog na slici 3.24 izgleda ovako:

    MsgBox Error encountered while trying to open file, & vbCrLf & please retry.,

    vbExclamation Text Editor

    Funkciju MsgBox opskrbljujete s tri informacije, ili argumenta: tekstom poruke, kon-stantom (numeri~ke vrijednosti) za odre|ivanje stila dijalo{kog okvira, te naslovom.Stilovi se odre|uju zahvaljuju}i raznim kombinacijama gumb i ikona {to olak{avakreiranje dijalo{kih okvira.

    Budu}i da ve}ina dijalo{kih okvira zahtijeva akciju korisnika, obi~no su prikazani kaoobavezni dijalo{ki okviri. Obavezni dijalo{ki okvir mora biti zatvoren (skriven iliobrisan) prije nego {to mo`ete nastaviti raditi s ostatkom aplikacije. Na primjer, dija-lo{ki okvir je obavezan ako od vas tra`i klik na OK ili Cancel prije nego {to se mo`eteprebaciti na drugu formu ili dijalo{ki okvir.

    Neobavezni dijalo{ki okviri omogu}uju vam promjenu fokusa izme|u dijalo{kog okvi-

    ra i druge forme bez potrebe za zatvaranjem dijalo{kog okvira. Mo`ete nastaviti sradom bilo gdje u trenutnoj aplikaciji iako je dijalo{ki okvir otvoren. Neobavezni dija-lo{ki okviri su rijetki; uglavnom }ete prikazati dijalo{ki okvir jer je potreban odgovorprije nastavka rada aplikacije. Dijalo{ki okvir koji dobivate odabirom stavke Find uizborniku Edit Visual Basica je primjer neobaveznog dijalo{kog okvira. Upotrijebiteneobavezne dijalo{ke okvire za prikaz ~esto kori{tenih naredbi ili informacija.

    Za vi{e informacija Za dodatne informacije o stvaranju dijalo{kih okvira, pogleda-jte 6. poglavlje Stvaranje korisni~kog su~elja.

    Slika 3.24 prikazuje primjer predefiniranog dijalo{kog okvira kreiranog kori{tenjemfunkcije MsgBox.

    Slika 3.24 Predefinirani dijalo{ki okvir

    1. dio Temelji Visual Basica