Etusivu Aloitus Kontrollit Metodit Muuttujat Ohjausrakenteet Silmukat Matematiikka Debuggaus Virheenkäsittely Vuorovaikutus Valikot Tiedostonkäsittely Ikkunat Leikepöytä Drag and Drop Tiedostopäätteet Linkkejä Harjoitukset
Valikoissa on aina ns. päävalikko, eli esimerkkikuvassamme kaikki näkyvät valikot ovat päävalikoita joista avautuu ns. alivalikoita. Alivalikoilla voi taasen olla omia alivalikoitaan jne. Seuraavassa kuvassa on esitelty päävalikko Format, sen alivalikko Make Same Size ja sen alivalikko Both.
Valikoihin pääsee "käsiksi" joko napsauttelemalla niitä hiirellä tai käyttämällä näppäimistöä. Jos haluat aktivoida valikkorivin ilman hiirtä, napsauta Alt -näppäintä.
Kuten huomasit (kuvasta korostusta on ehkä hieman hankala nähdä), File -valikko on Alt -napin painalluksen jälkeen aktiivinen. Voit liikuttaa kohdistusta nuolinäppäimillä (oikealle ja vasemmalle), valikko avautuu Enter tai nuoli alas -näppäimellä. Valikko sulkeutuu Esc -näppäimellä. Tämän lisäksi huomasit ehkä, että Alt -näppäimen painalluksen jälkeen voit avata haluamasi valikon painamalla em. valikossa alleviivattuna olevaa kirjainta. Jos haluat avata Diagram -valikon, paina ensin Alt -näppäintä aktivoidaksesi valikon ja sen jälkeen i -kirjainta avataksesi em. valikon. Tämän lisäksi valikolla voi olla vielä ns. pikanäppäin, esim. File -valikon Exit -toiminnolla on pikanäppäin Alt-Q. Ja huomasithan, että jotkut valikot eivät välttämättä ole aktiivisia (eli niitä ei voi valita).
Ns. normaalivalikoiden lisäksi on olemassa ns. pika -valikoita, jotka avautuvat esim. tietyn kontrollin päältä hiiren oikeaa nappia napsautettaessa. Kokeile napsauttaa hiiren oikeaa painiketta esim. lomakkeella olevan painikkeen päällä (suunnittelutilassa), seuraavanlainen pikavalikko tulisi avautua:
Nyt siis tiedämme millä eri tavoin valikoita voi käyttää. Seuraavaksi opettelemme luomaan valikoita.
Tätä ikkunaa käyttäen voit lisätä ns. staattisia valikoita, eli valikoita jotka luodaan ennen ohjelman suorittamista. Toki voit luoda paljon valikoita ja piilottaa niistä osan ja näyttää tarpeen mukaan jolloin käyttäjälle tulee tunne, että valikoita "luodaan lennossa". Valikoita voi luoda lennosta tarpeen mukaan, tämä onnistuu siten, että luodaan yksi staattinen valikko ja annetaan sille indeksinumero. Tämän jälkeen voimme ohjelmakoodissa ladata em. valikosta uusia valikkoilmentymiä.
Nyt opettelemme kuitenkin tekemään ensin perusvalikon. Kuten johdannosta muistatkin, valikoita on usean tasoisia. Teemme nyt ns. päätason valikot. Kirjoita Caption -kohtaan teksti Tiedosto. Tämä on valikkosi nimi, joka näkyy käyttäjälle. Seuraavaan kohtaan voit kirjoittaa mnuTiedosto joka on valikon nimi, jota käytetään ohjelmakoodista. Napsauta Next -painiketta - valikko on luotu ja olemma valmiit luomaan seuraavan valikon. Tee samat toimenpiteet, nimiksi "Ohjelmasta" ja "mnuOhjelmasta" ja napsauta OK -painiketta. Alla kuva valmiista valikoista ja ohjelmasta OK -painikkeen napsautuksen jälkeen.
Olemme luoneet nyt siis päätason valikot. Kuinka tehdään ns. alivalikoita? Avaa Menu Editor jälleen kerran ja valitse (eli napsauta hiiren vasemmalla painikkeella) Ohjelmasta -valikkoa. Tämän jälkeen voit napsauttaa Insert -painiketta. Kuten ehkä huomasit, ohjelma loi tyhjän kohdan Tiedosto ja Ohjelmasta -valikoiden väliin. Kirjoita nyt teksteiksi "Sulje" ja "cmdSulje". Napsauta OK ja sulje Menu Editor. Huomaatko ongelman? Sulje -valikko jonka pitäisi olla alavalikko onkin nyt päävalikko! Avaa Menu Editor jälleen kerran ja valitse Sulje -valikko. Voit sisentää valikkoa eli laittaa sen alivalikoksi napsauttamalla nuoli oikealle painiketta. Nyt voit sulkea Menu Editor:in.
Private Sub mnuOhjelmasta_Click() MsgBox "Napsautit Ohjelmasta -valikkoa" End Sub Private Sub mnuSulje_Click() Unload Me End Sub Private Sub mnuTiedosto_Click() Me.Caption = "Napsautit Tiedosto -valikkoa" End SubMitä em. ohjelmakoodi sitten tekee? Jos käyttäjä napsauttaa Ohjelmasta -valikkoa (päävalikko!), näytetään viestilaatikko joka kertoo, että käyttäjä oli napsauttanut Ohjelmasta -valikkoa. Näin voi tehdä, jos em. päävalikolla ei ole alivalikoita. Sulje -valikon ohjelmakoodi pyytää ohjelmaa sulkeutumaan (Unload Me). Tiedosto -valikkoa napsautettaessa vaihdetaan ohjelman otsikoksi teksti "Napsautit Tiedosto -valikkoa".
Esimerkin vuoksi luomme nyt uuden päävalikon ja sen alle alivalikoita. Avaa Menu Editor ja luo Ohjelmasta -valikon (viimeisin valikko) jälkeen uusi päätason valikko (eli ei ollenkaan sisennystä) nimeltä "Poppari" ja "mnuPoppari". Tämän jälkeen luo kaksi alivalikkoa, "Tietoa ohjelmasta", "mnuPikavalikkoTietoaOhjelmasta" ja "Sulje", "mnuPikavalikkoSulje". Tuloksena seuraavanlainen valikkorakennelma:
Huom! Muista laittaa Poppari -valikon (eli tulevan pikavalikon Visible -ominaisuus False -asentoon, muutoin pikavalikko näkyy päävalikossa ylhäällä mikä ei ole tarkoitus). Kun suljet Menu Editor:n, näyttää siltä, että yhtään uutta valikkoa ei ole tehty.
Seuraavaksi lisäämme lomakkeelle yhden painikkeen ja kirjoitamme vähän ohjelmakoodia. Kuten jo aikaisemmin oli puhetta, pikavalikko voi olla jokin nykyisistä, jo näkyvistä valikoista tai sitten oma, erikseen tehty valikko. Kirjoitetaan siis ohjelmakoodi, joka näyttää Tiedosto -valikon pikavalikkona kun hiiren painiketta painetaan painikkeen päällä (ihan sama kumpaa painiketta):
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) PopupMenu mnuTiedosto End SubHuomaa tapahtuma, johon ohjelmakoodi on kirjoitettu. Yleinen tapa näyttää pikavalikko on sijoittaa se MouseDown -tapahtumaan, eli pikavalikko tuodaan esiin kun hiiren (vasen) painike on painettu alas (mutta ei päästetty ylös). Itse pikavalikko näytetään kutsumalla PopupMenu -metodia ja antamalla parametriksi näytettävä (päätason) valikko. Seuraavassa kuvassa olemme painaneet hiiren vasemman painikkeen alas ja valikko avautuu:
Jos valitsemme Sulje -toiminnon, suoritamme silloin Sulje -valikkoon liittyvän ohjelmakoodin eli suljemme ohjelman. Kuten huomasit, sama valikko löytyy nyt siis päävalikosta tai pikavalikosta!
Joskus on tarpeen esittää pikavalikko joka ei koostu jo näkyvistä valikoista. Lisätään ensin hiukan ohjelmakoodia pikavalikoihin:
Private Sub mnuPikavalikkoSulje_Click() ' Kutsu mnuSulje -valikon Click -tapahtumaa mnuSulje_Click End Sub Private Sub mnuPikavalikkoTietoaOhjelmasta_Click() MsgBox "Hieno ohjelma (c) Teppo Testaaja", vbInformation End SubKäydään lyhyesti läpi mitä em. ohjelmakoodit tekevät. Jos käyttäjä valitsee pikavalikosta Sulje -toiminnon (Huom! Tämä on eri Sulje -valikko kuin päävalikossa ja ensimmäisessä pikavalikossa näkyvä Sulje -toiminto), kutsutaan mnuSulje_Click -aliohjelmaa jossa on Unload Me -komento joka sulkee ohjelman. Jos käyttäjä valitse Tietoa ohjelmasta -valikkokohdan, näytetään viestilaatikko.
Seuraavaksi meidän täytyy kirjoittaa ohjelmakoodi, joka näyttää pikavalikon. Nyt valitsemme pikavalikon näyttöpaikaksi lomakkeen ja vieläpä siten, että käyttäjän tulee painaa hiiren oikea -painike alas saadakseen pikavalikon esille:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Onko painettu hiiren oikeaa painiketta? If Button = 2 Then PopupMenu mnuPoppari End If End SubSijoitamme ohjelmakoodimme lomakkeen MouseDown -tapahtumaan kuten painikkeenkin kanssa mutta nyt tutkimme, kumpi hiiren painike on alhaalla. Vasen painike on 1, oikea 2 eli jos käyttäjä on napsauttanut painiketta 2, näytetään pikavalikko.
Esimerkkiohjelma: valikkoesimerkki.frm
Huom! Voit piilottaa ja ottaa väliaikaisesti pois käytöstä valikoita käyttämällä valikon Visible ja Enable -ominaisuuksia.