LUKU 3 OMINAISUUDET Jo piirretyn ohjaimen sijaintia ja kokoa voi muuttaa milloin tahansa merkitsemällä sen ja vetämällä keskeltä tai kahvoista (kokoa tai muotoa muutettaessa). Sijaintia ja kokoa voi muuttaa myös ominaisuusikkunan avulla (katso alla ominaisuudet Top, Left, Width ja Height) kuten ohjaimien muitakin ominaisuuksia, joita tarkastelen seuraavaksi. Jokaisella ohjaintyypillä, samoin kuin muilla Visual Basic -olioilla (lomakkeilla, erikoisolioilla, valikkokomennoilla ja koodissa määritellyillä olioilla) on etukäteen määrätyt ominaisuudet, joita useimpia voi määrittää sekä ohjelmoitaessa että ajon aikana viittaamalla ominaisuuksiin koodissa. Ominaisuuksien syntaksi on seuraava: [Lomake.]Olio.ominaisuus Olio voi olla ohjain, valikkokomento, erikoisolio tai lomake. Lomake on mainittava kuitenkin vain, jos sen tai sen ohjaimen ominaisuuteen viitataan toisesta lomakkeesta tai koodimoduulista. Useamman lomakkeen käytöstä, katso luku 11. Usein on myös tarpeen noutaa ominaisuuden arvo, kuten alla: Select Case list1.listindex Case 0 text2.text = Val(text1.text) *.3048 Case 1 text2.text = Val(text1.text) * 2.54 End select Ominaisuudet ovat toisin sanoen muuttujia. Käsittelen muuttujia yleisemmältä kannalta luvussa OHJELMOINTIKIELI. Aina kun kuvaruudussa on lomake ja se tai joku sen ohjaimista on valittu, voi View-valikosta valita komennon Properties Window tai Standard-työkalupalkista vastaavan painikkeen:
44 Visual Basic 5 -ohjelmoinnin peruskurssi Olioluettelo Määritekenttä 3.1: Ominaisuusikkuna Näyttöön tulee ominaisuusikkuna, jossa on kaikki valitun olion ohjelmointivaiheessa määritettävät ominaisuudet (kuva 1). Ominaisuusikkunan saa näkyviin myös oikean painikkeen valikosta. (ActiveX-ohjaimilla komento Properties avaa 95-tyylisen kielekepaneelin. Varsinaisen ominaisuusikkunan saat näkyviin yllä kuvatulla tavalla.) Yleensä ominaisuusikkuna on jo käynnistettäessä näkyvillä. Ikkunan yläosassa on avattava luettelo, jossa on valittavissa kaikki aktiivisen lomakkeen ohjaimet sekä itse lomake. Voit valita ohjaimen tai lomakkeen myös napsauttamalla niitä lomakeikkunassa. Ominaisuudet puolestaan voit näyttää joko aakkosjärjestyksessä valitsemalla sivun Alphabetic tai luokittain sivulla Categorized. Kun vaihdat oliota, eikä valitulla oliolla ole viimeksi määritettyä ominaisuutta, valittuna on olion oletusominaisuus. Oletusominaisuuksista tarkemmin luvun loppupuolella. Jos esimerkiksi olet merkinnyt tekstiruudun, luettelossa on ominaisuus Text. Komentopainikkeelle tätä ominaisuutta puolestaan ei voi määrittää. Tärkeä ominaisuus on Name. Sitä käytetään, kun olioon viitataan koodissa. Jos ominaisuudella on rajallinen määrä arvoja, määritekentän reunassa on nuolipainike, jolla voit avata luettelon mahdollisista arvoista. Monilla ominaisuuksilla on vain arvot True (tosi) ja False (epätosi).
3 Ominaisuudet 45 3.2: Valittavia ominaisuuksia ja metodeja HUOM Jos ominaisuudella on rajallinen määrä etukäteen määrättyjä arvoja, voit selata niitä kaksoisnapsauttamalla ominaisuuskenttää. Joissakin tapauksissa voit avata erillisen valintaikkunan, josta arvo (esimerkiksi kirjasin, väri tai tiedosto) haetaan. Tämän merkkinä määritekentässä on kolme pistettä. Ominaisuusikkunassa on kaikki ohjelmointivaiheessa asetettavat ominaisuudet. Kun haet tai asetat ominaisuuksia koodi-editorissa ja olet kirjoittanut olion nimen ja pisteen Visual Basic näyttää avattavan luettelon (kuva 2), jossa on kaikki ajon aikana (eli koodista) asetettavat tai luettavat ominaisuudet samoin kuin metodit (vrt. luku 5). Tämä edellyttää, että olet valinnut Tools - Options -ikkunan Editor-sivulla vaihtoehdon Auto List Members. Voit avata luettelon myös komennolla Edit - List Properties/ Methods ja vastaavalla Edit-työkalupalkin painikkeella. Jatkossa tätä merkkiä seuraavat ominaisuudet ovat luettavissa/asetettavissa vain ajon aikana.
46 Visual Basic 5 -ohjelmoinnin peruskurssi YLEISIÄ OMINAISUUKSIA ULKONÄKÖ Ominaisuusikkunan Categorized-sivulla nämä ominaisuudet ovat otsakkeen Appearance alla. Appearence: Jos tämä looginen ominaisuus on True, olio on kolmiulotteinen. Picture: Kuvan voi määrittää ohjelmointivaiheessa joko valitsemalla ominaisuusikkunasta avatussa valintaikkunassa jonkin kuvatiedoston tai liittämällä bittikartan suoraan leikepöydältä. Ajon aikana kuva liitetään LoadPicture-funktiolla. Vain ohjelmointivaiheessa liitetyt kuvat tulevaksi osaksi exe-tiedostoa. Ominaisuuden arvona voi olla bittikartta, metatiedosto, kuvake ja nyt myös gif- tai jpeg-tiedosto. Oliot: Lomake, Kuvakehys, Kuva, Komentopainike, Valintaruutu, Valintanappi. HUOM Kuvien käyttö komentopainikkeessa, valintaruudussa ja valintanapissa edellyttää, että ohjaimen Style-arvo on 1 Graphical Image: Image sisältää ajon aikana ohjaimeen piirretyn grafiikan, mikäli Autoredraw-ominaisuus on True. Kts. myös PaintPicture-metodi luvussa 5. Oliot: Lomake, Kuvakehys DisabledPicture: Tähän ominaisuuteen sijoitettu kuva näkyy Pictureominaisuuden sijasta, kun ohjain on Disabled-tilassa, eli kun sen Enabled-arvo on False. Ominaisuuden arvona voi olla bittikartta, metatiedosto tai kuvake. Oliot: Komentopainike, Valintaruutu, Valintanappi DownPicture: Tähän ominaisuuteen sijoitettu kuva näkyy Pictureominaisuuden sijasta, kun ohjain on alaspainettu tai valittu (valintaruutu ja -nappi). Ominaisuuden arvona voi olla bittikartta, metatiedosto tai kuvake. Oliot: Komentopainike, Valintaruutu, Valintanappi BackColor ja ForeColor: Ohjaimien ja lomakkeen tausta- ja edusvärit. Kuviolla ei ole Forecolor-ominaisuutta, Vierityspainikkeilla, Kuvalla ja Viivalla ei kumpaakaan.
3 Ominaisuudet 47 MouseIcon ja MousePointer: Jos MousePointer-arvo on 99 Custom, hiiriosoittimena on MouseIcon-ominaisuuteen liitetty tiedosto tai ajon aikana haettava toisen ohjaimen Picture-arvo tai LoadPicture-funktiolla haettu tiedosto. RightToLeft: Tällä ominaisuudella on merkitystä vain kaksisuuntaisissa järjestelmissä kuten arabiankielisessä Windowsissa. KÄYTTÄYTYMINEN Ominaisuusikkunassa nämä ominaisuudet on otsakkeen Behaviour alla. Dragmode: Jos arvona on Automatic (1), oliota voi automaattisesti vetää hiirellä. Vedettyä ohjainta ei kuitenkaan voi pudottaa ilman eri koodia. Oletusarvo: Manual (0). DragIcon: Tähän ominaisuuteen voit liittää kuvakkeen, jota käytetään osoittimena vedon aikana. Enabled: Jos arvo on 0, ohjain ei reagoi sille ominaisiin hiiri- ja näppäintapahtumiin. Tätä ominaisuutta ei ole kuviolla eikä viivalla, joihin ei liity lainkaan tapahtumia. OleDragmode: Vastaava ominaisuus kuin DragMode, mutta koskee toisten sovellusten luovuttamia OLE-olioita. OleDropMode: Jos arvo on 0 None, ohjain ei hyväksy pudotettua OLE-oliota. Jos arvo on 1 Manual, pudottaminen laukaisee OleDroptapahtuman (vrt. seuraava luku), mikä mahdollistaa pudotetun olion käsittelyn koodista. Jos arvo on 2 Automatic (kaikilla olioilla ei tätä vaihtoehtoa ole), tapahtuma ei laukea, vaan ohjain käsittelee pudotetun olion automaattisesti, mikäli tunnistaa sen. Esimerkiksi tekstiruutuun voi vetää tekstiä Windows-teksturista kuten Wordistä ilman ohjelmointia. Tabstop: Jos Tabstop on 0, sarkainnäppäimellä siirryttäessä tämä ohjain ohitetaan. Jos ohjaintyypillä on ominaisuus Tabstop ja haluat, ettei sillä voi olla fokusta (esimerkiksi jos haluat käyttää kuvakehystä kehyksen tapaan), määritä arvoksi 0. TabStop-ominaisuutta ei ole Kehyksellä, Kuvalla, Otsikolla, Viivalla, Kuviolla ja OLE-ohjaimella eikä myöskään lomakkeella. Tabindex: Arvo määrää järjestyksen, jossa sarkainnäppäimellä siirrytään ohjaimesta toiseen. Alunperin järjestys on sama kuin se, missä ohjaimet on sijoitettu lomakkeeseen. Myös kehyksellä ja otsikolla, joilla ei voi olla fokusta, on Tabindex-arvo (joten niillä on määrätty paikka
48 Visual Basic 5 -ohjelmoinnin peruskurssi sarkainjärjestyksessä), mutta ei Viivalla, Kuviolla, OLE-ohjaimella eikä Kuvalla. Visible: Määrää, onko ohjain näkyvä (True) vai näkymätön (False). Tätä ominaisuutta ei ole MDI-lomakkeella. SEKALAISIA Ominaisuusikkunassa nämä ominaisuudet on otsakkeen Miscellaneous alla. HelpContextID, WhatsThisHelpID: Näitä ominaisuuksia tarvitaan ohjeiden liittämisessä projektiin ja yksittäisiin ohjaimiin. Käsittelen ohjeita Jatkokurssi-kirjassa. Tag: Tämän ominaisuuden arvo ei vaikuta ohjaimen toimintoihin ja sitä voi käyttää tiedon tallentamiseen muuttujan tapaan. Tag on kaikilla paitsi erikoisolioilla, myös valikolla. ToolTipText Ohjeteksti, joka näkyy, kun hiiriosoitinta pidetään painikkeen päällä. Index: Kaikilla matriiseilla ja kokoelmilla on tämä ominaisuus. Matriisin voi luoda joko määrittämällä suunnitteluvaiheessa ohjaimen indeksiksi 0 tai kopioimalla ohjaimen ja vastaamalla "yes", kun Visual Basic kysyy, onko tarkoitus tehdä matriisi. Ajon aikana tehtävät matriisin elementit perivät kaikki ominaisuudet paitsi Visible, Index ja TabIndex. Ominaisuuksia voi kuitenkin vapaasti muuttaa. Matriisin alkiot jakavat yhteiset tapahtumat, joissa Index-argumentti palauttaa alkion. Ohjainmatriiseista tarkemmin luvussa 7. DATA Ominaisuusikkunassa nämä ominaisuudet on otsakkeen Data alla. Datasource ja Datafield: Ohjaimilla, jotka on mahdollista sitoa dataohjaimeen. Näitä ovat valintaruutu, luetteloruutu, yhdistelmäruutu, datataulukko, dataluetteloruutu, datayhdistelmäruutu, kuva, otsikko, kuvakehys ja tekstiruutu (VB:n ohjeessa on virhe). Sidotun ohjaimen on sijaittava samalla lomakkeella kuin sitä palvelevan data-ohjaimen. DDE Ominaisuusikkunassa nämä ominaisuudet on otsakkeen DDE alla.
3 Ominaisuudet 49 LinkItem, LinkMode, LinkTimeout ja LinkTopic: Nämä ovat DDE-yhteyksiin liittyviä ominaisuuksia, joita käsittelen tarkemmin Jatkokurssi-kirjassa. SIJAINTI Ominaisuusikkunassa nämä ominaisuudet on otsakkeen Position alla Height, Width, Top ja Left: Kaikilla näkyvillä ohjaimilla (paitsi viivalla, jolla on vastaavat X1-, X2-, Y1- ja Y2-ominaisuudet) sekä lomakkeella ja MDI-lomakkeella: Nämä määrittävät ohjaimen muotoa ja sijaintia. Jos valitset jonkin näistä ominaisuuksista ja muotoilet tai siirrät ohjainta hiirellä, määritekentän arvot muuttuvat jatkuvasti. Samoin muuttuvat työkalupalkin oikealla puolella näkyvät arvot: Vastaavasti voit säätää ohjainta kirjoittamalla jonkin arvon määritekenttään. Koodin avulla ohjaimen, esimerkiksi tekstiruudun, koko voidaan sitoa ikkunan kokoon, jota käyttäjä voi vapaasti muuttaa. Height- ja Width-ominaisuudet on myös Printer- ja Screen-erikoisolioilla. HUOM Lomakkeen Top- ja Left-arvoja voit muuttaa lomakeasetteluikkunan avulla. KIRJASINOMINAISUUDET Ominaisuusikkunassa tämä ominaisuus on otsakkeen Font alla Font: Nelosversion uutuus oli tämä ominaisuus, joka itsessään on olio. Font-oliolla puolestaan on ominaisuudet Name, Size, Bold, Italic, StrikeThru, Weight ja UnderLine, jotka määräävät lomakkeen ja tulostimen, sekä kaikkien ohjaimien, joihin voi liittyä tekstiä, kirjasintyypin ja koon sekä mahdollisen lihavoinnin, kursiivin, päälle- ja alleviivauksen (tarkemmin luvussa 9). Esimerkiksi seuraava koodi asettaa tekstiruudun tekstin alleviivatuksi:
50 Visual Basic 5 -ohjelmoinnin peruskurssi 3.3: Fontin valinta Text1.Font.Underline = True FontName, FontSize, FontBold, FontItalic, FontStrikeThru, FontUnderLine: Nämä ovat mukana yhteensopivuuden vuoksi sekä käytettäväksi vakiovalintaikkunan kanssa, joka ei tue Font-ominaisuutta. Näitä ominaisuuksia ei voi valita ominaisuusikkunasta muille kuin Valintaikkunalle. FontTransParent: Lomakkeella, kuvakehyksellä ja Printer-oliolla. Määrää tekstin läpinäkyvyyden (ks. luku 9). Fonts, FontCount: Palauttavat näytön ja tulostimen käytettävissä olevat kirjasintyypit ja niiden määrän. Näytön osalta Fonts sisältää samat kirjasimet (oman järjestelmäsi osalta), jotka voit valita ominaisuusikkunassa ohjelmointivaiheessa (ks. luku 9).
PARENT- JA CONTAINER-OMINAISUUDET 3 Ominaisuudet 51 Kaikilla ohjaimilla on Parent-ominaisuus, joka on luettavissa vain ajon aikana. Parent palauttaa lomakkeen, olion tai kokoelman, johon ohjain (tai olio tai kokoelma) on sijoitettu. Container-ominaisuus puolestaan palauttaa toisen ohjaimen (kehyksen tai kuvakehyksen), jos ohjain on piirretty sen sisään. Jos sijoitat lomakkeelle kehyksen ja piirrät sen sisälle komentopainikkeen, seuraava koodi muuttaa kehyksen väriä, kun käyttäjä painaa hiiren vasenta painiketta ja lomakkeen väriä, kun käyttäjä painaa oikeaa painiketta: Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Command1.Container.BackColor = RGB(100, 0, 0) ElseIf Button = 2 Then Command1.Parent.BackColor = RGB(100, 0, 0) End If End Sub ESIMERKKI Sijoita lomakkeeseen kehys kaksoisnapsauttamalla työkalulaatikon kehys-kuvaketta. Kehys on nyt lomakkeen keskellä oletuskokoisena. Koska kehys on edelleen merkitty, voit avata ominaisuusikkunan työkalupalkista. Ominaisuusikkunan voi avata vain, jos jokin ohjain tai lomake on merkitty. Avaa ominaisuusikkuna ja valitse siitä ominaisuus Caption. Kirjoita määritekenttään oletusarvon Frame1 tilalle Kehys. Huomaa, että kun 3.2: Caption-ominaisuus
52 Visual Basic 5 -ohjelmoinnin peruskurssi kirjoitat uutta määritystä kenttään, se ilmestyy myös lomakkeen kehykseen (kuva 2). Seuraavaksi muutamme kehyksen taustaväriä: Huomaat, että määritekentässä on & -merkkien välissä valkoisen värin heksadesimaaliarvo ja nuolipainike. Napsauttamalla nuolta saat näytölle väripaletin, josta voit valita uuden taustavärin. Valitsemalla valikkokomennon Window - Color Palette saat ruutuun hieman toisennäköisen väripaletin, josta voit määrittää myös omia värejä. Tästä paletista voit määrittää edusta-tai taustavärin valitsemalla joko sisemmän tai ulomman ruudun. Muuta vielä kehyksen kirjasinkoko valitsemalla ominaisuus Font. Oletusfonttina on MS Sans Serif ja kokona 8. Määritekentän oikealla puolella on nyt kolme pistettä sen merkkinä, että voit avata ikkunan, josta ominaisuuden arvon voi valita. Napsauttamalla kolmea pistettä avaat yleisen fontinvalintaikkunan (kuva 3). Joidenkin ominaisuuksien kuten taustavärin ja kirjasinkoon muutokset näkyvät lomakkeella välittömästi. Visible-arvon muutoksen puolestaan huomaa vasta ajamalla ohjelman. Visible on looginen ominaisuus, jolla on vain arvot False ja True. Valitse nyt arvoksi False. Sijoita nyt kehykseen komentopainike ja paina sitten F5-näppäintä. Sekä kehys että siihen sijoittamasi komentopainike ovat näkymättömiä. Jos ohjain on näkymätön, myös sen Enabled-arvo on False. Et siis voi napsauttaa näkymätöntä komentopainiketta vaikka tietäisit sen sijainnin (etkä myöskään vahingossa). HUOM Ohjain, jonka Enabled-arvo on False, voi olla myös näkyvä, ja tällöin on mahdollista napsauttaa vahingossa sen alla piilossa olevaa ohjainta. ESIMERKKI 2 Sijoita lomakkeeseen nyt tekstiruutu ja laajenna sitä reilusti vetämällä kahvasta ja paina sitten F5-näppäintä tai valitse Run-valikosta komento Start. Jos tekstiruutu oli lomakkeen ainoa ohjain, kohdistin on sen vasemmassa yläkulmassa. Muussa tapauksessa voit aktivoida tekstiruudun hii-
3 Ominaisuudet 53 rellä. Voit siirtyä ohjaimesta toiseen myös Sarkain- ja Vaihto+Sarkain - näppäimillä. Kuten huomaat, tekstiä voi kirjoittaa vain yhdelle riville. (Voit myös kopioida tekstiä leikepöydältä ruutuun ja toisinpäin Windowsin pikanäppäimillä.) Monirivisyys on ominaisuus, jonka oletusarvo on False. Sen vaihtamiseksi ohjelman ajo on päätettävä. Voit tehdä sen ikkunan pikavalikon tai lopetuspainikkeen avulla normaaliin Windows-tapaan tai valitsemalla Run-valikosta End-komennon. Merkitse tekstiruutu nyt uudelleen ja valitse ominaisuus Multiline. Multiline on looginen ominaisuus, joten valittavana on vain vaihtoehdot False ja True. Määritä arvoksi True. Voit tehdä sen helposti kaksoisnapsauttamalla määritekenttää. Poista seuraavaksi oletusteksti Text1 valitsemalla ominaisuus Text ja tyhjentämällä määritekenttä. Valitse vielä Scrollbars -ominaisuudelle arvo Vertical. Jos nyt painat F5-näppäintä, ohjelmaikkunassa on tyhjä tekstiruutu, johon voit kirjoittaa rajattoman monta riviä joko syöttämällä rivinvaihtokoodin Enter-näppäimellä tai antamalla tekstin mukautua laatikon leveyteen. Jos rivejä on enemmän kuin laatikkoon mahtuu, voit vierittää tekstiä vierityspalkilla (tai nuolinäppäimillä). Jos olisit määrittänyt Scrollbars = Both (tai pelkästään Horizontal), teksti ei mukautuisikaan tekstiruudun leveyteen. HARJOITUS Avaa nyt uudelleen tallentamasi yksikkölaskinprojekti Yksikko.vpb ja muuta ohjaimien ominaisuudet kuvan 2.4 mukaisiksi. Luettelokohdat lisäämme myöhemmin. Tallenna tekemäsi projekti. Myöhemmissä harjoituksissa projektia täydennetään koodilla, joka saa sen eloon.
54 Visual Basic 5 -ohjelmoinnin peruskurssi OHJAIMILLE TYYPILLISIÄ OMINAISUUKSIA LOMAKE MinButton, MaxButton, Controlbox: Nämä ominaisuudet määräävät onko ikkunassa pienennys- ja suurennus-painikkeet sekä ohjausvalikko (True), vaiko ei. Arvoja ei voi muuttaa ajon aikana. BorderStyle: Lomakkeen BorderStyle-ominaisuudella voi olla seuraavat arvot, joita voi muuttaa vain ohjelmointivaiheessa: 0 Ei reunoja. 1 Ikkunassa voi olla ohjausvalikko ja pienennys- ja suurennuspainikkeet. Kokoa voi muuttaa ainoastaan painikkeilla. 2 Normaali ikkuna, jonka kokoa voi muuttaa vetämällä reunoista. 3 Ikkunassa voi olla ohjausvalikko mutta ei pienennys- ja suurennuspainikkeita. Kokoa ei voi muuttaa. 4 Ikkunassa on lopetuspainike ja otsikko on pienikokoinen. Kokoa ei voi muuttaa. Ikkuna ei näy tehtäväpalkissa. Tyypillisesti tätä ikkunamallia (kuva 5) käytetään työkalupalkeissa. 5 Ikkunassa on lopetuspainike ja otsikko on pienikokoinen. Kokoa voi muuttaa. Ikkuna ei näy tehtäväpalkissa. Palette, PaletteMode: Palette-ominaisuuten voit sijoittaa bittikarttatiedoston, joka sisältää lomakkeen tai kuvakehyksen kanssa käytettävän väripaletin. Tämä edellyttää, että PaletteMode-arvo on 2. WhatsThisHelp, WhatsThisButton: Nämä ominaisuudet liittyvät tilannekohtaisiin ohjeisiin, joita käsittelen Jatkokurssi-kirjassa. ScaleMode, ScaleWidth, ScaleHeight, ScaleTop, ScaleLeft: Ohjaimen mittakaavaan liittyviä ominaisuuksia. Katso luku 10. Icon: Voit liittää tähän ominaisuuteen ICO-tiedoston, jonka haluat näkyvän, kun sovellus on pienennetty kuvakkeeksi. 3.5: Ikkuna, jonka Bordestyle-arvon 4
3 Ominaisuudet 55 HUOM Voit piirtää kuvakkeelle samoilla lomakkeen graafisilla metodeilla ja funktioilla kuin avatulle ikkunallekin. Tyhjennä kuvake ensin antamalla Loadpicture-funktiolle tyhjä argumentti (Loadpicture()). Grafiikasta tarkemmin luvussa 10. ClipControls: Jos arvo on True, VB ei maalaa ohjaimien alta Painttapahtuman (vrt. seuraava luku) yhteydessä. False-vaihtoehto säästää muistia. Muut oliot: Kuvakehys, Kehys ShowinTaskbar: Jos tämän arvo on tosi, lomake näkyy Windowsin tehtäväpalkissa ajon aikana. BorderStyle-ominaisuuden muuttaminen voi muuttaa tätä ominaisuutta. MDI-LOMAKE Negotiate Toolbars: Katso Jatkokurssi-kirja. KUVAKEHYS Align: Jos ominaisuuden arvo on 0 (oletus tavallisille lomakkeille), kuvakehyksen sijainti lomakkeella voidaan asettaa vapaasti niin ohjelmointivaiheessa kuin ajon aikana. MDI-lomakkeen yhteydessä 0-arvoa ei huomioida. Jos arvo on 1 (oletus MDI-lomakkeella, Kuvakehys ja Dataohjain ovat ainoat vakio-ohjaimet, jotka voi sijoittaa MDI-lomakkeelle), ohjain on aina lomakkeen ylälaidassa ja sen leveys on sama kuin lomak- 3.6: Kuvakehys- ja Kuva-ohjaimia
56 Visual Basic 5 -ohjelmoinnin peruskurssi keen ScaleWidth-arvo. Jos arvo on 2, ohjain on aina lomakkeen alalaidassa ja leveys on sama kuin lomakkeen ScaleWidth-arvo. Jos arvo on 3, ohjain on vasemmassa reunassa ja sen korkeus on sama kuin lomakkeen ScaleHeight-arvo (VB:n ohjeessa on virhe) ja jos arvo on 4, ohjain on oikeassa laidassa ja korkeus on sama kuin lomakkeen ScaleHeight-arvo. Muut oliot: Data-ohjain. Negotiate: Katso Jatkokurssi-kirja. AutoRedraw: Jos arvo True, kuvakehykseen ajon aikana piirretty grafiikka säilyy (esimerkiksi ikkunan pienentämisen aikana). Se on myös mahdollista tallentaa SavePicture-lauseella. Muut oliot: Lomake. BorderStyle: Jos arvo on 1 (oletus) ohjaimella on reunus, muutoin ei. Muut oliot: Taulukko, Tektiruutu, OLE (oletus 1) ja Otsikko, Kuva (oletus 0) AutoSize: Jos arvo True, ohjaimen koko mukautuu sisältönsä kokoon. Vrt. Kuvan Stretch-ominaisuus. Kuvassa 6 kaksi ylintä ohjainta on kuvakehyksiä, joista vasemman AutoSize-arvo on False, oikean True. Näiden alla on kuva-ohjaimia, vasemman Stretch-arvo on False, oikean True. Kaikki ohjaimet on alunperin piirretty oletuskokoon kaksoisnapsauttamalla ja niihin on liitetty leikepöydältä sama bittikartta. Muut oliot: Otsikko. KUVA Stretch: Jos arvona on 0 (False), ohjaimen koko mukautuu sen Picture-ominaisuuteen liitettyyn bittikarttaan. Jos arvona on -1 (True), bittikartta puolestaan sovittuu ohjaimen kokoon. OTSIKKO Caption: Otsikon teksti sijoitetaan tähän. Caption-arvoa voi muuttaa ajon aikana vain koodista. AutoSize, WordWrap: Jos AutoSize on True, Otsikon koko mukautuu Caption-arvon tekstin mukaan. Jos lisäksi WordWrap on True, Otsikon koko mukautuu pystysuunnassa, muuten vaakasuunnassa. Alignment: Jos arvo on 0, teksti sijoittuu otsikon vasempaan laitaan, jos arvo on 1, oikeaan laitaan ja jos arvo on 2, keskelle. Sama ominaisuus on myös tekstiruudulla, mutta toisin kuin Otsikolla sitä ei voi muuttaa ajon aikana.
3 Ominaisuudet 57 TEKSTIRUUTU Text: Tekstiruudun sisältämä teksti, jota käyttäjä voi muuttaa. Teksti voi olla pitempi kuin ruutuun fyysisesti mahtuu. Multiline: Jos tämän arvo on False (0), ruudussa voi olla vain yksi rivi tekstiä (oletusarvo). Scrollbars: Katso esimerkki 2. Tekstiruudun merkittävä rajoitus on, että kaikki kirjasinmääritykset koskevat koko tekstiä. Locked: Jos arvo on True, käyttäjä voi valita ja vierittää tekstiä, mutta sitä voi muutaa vain koodista (asettamalla Text-ominaisuuden). Vrt. Yhdistelmäruutu. KEHYS Visible: Jos arvo on False (0), kaikki kehykseen sijoitetut ohjaimet ovat myös näkymättömiä. KOMENTOPAINIKE Enabled: Jos arvo on False (0), komentopainike ei ole käytettävissä. Default: Vain yksi komentopainike lomakkeella voi olla oletuspainike (arvo True). MaskColor: Bittikarttojen kanssa käytettävä ominaisuus. Jos UseMaskColor-arvo on True, tähän ominaisuuteen sijoitettu väri toimii maskina eli on läpinäkyvä. Muut oliot: Valintaruutu ja -nappi. UseMaskColor: Vrt. yllä MaskColor. Style: Painikkeen Picture-, DisabledPicture- ja DownPicture-arvoihin sijoitetut kuvat näkyvät vain, jos Style-arvo on 1 Graphical. VALINTARUUTU JA VALINTANAPPI Value: Merkityn valintaruudun Value = 1. Mitätöidyn (harmaan) ohjaimen Value = 2. Valintanapilla on vain arvot 0 (valittu) ja -1 (valitsematon). Vain yksi valintanappi lomakkeella tai kehyksessä voi olla merkitty. Alignment: Valintanapin ja -ruudun teksti voi olla joko ohjaimen oikealla (0) tai vasemmalla (1) reunalla. Style: Ohjaimen Picture-, DisabledPicture- ja DownPicture-arvoihin sijoitetut kuvat näkyvät vain, jos Style-arvo on 1 Graphical. Lisäksi oh-
58 Visual Basic 5 -ohjelmoinnin peruskurssi jain muistuttaa tällöin komentopaiketta. Alla vasemmanpuoleisen valintaruudun Style-arvo on 0, oikenpuoleisen 1. Molemmat ovat valittuja. YHDISTELMÄ- JA LUETTELORUUTU Text: Sisältää valitun kohdan tekstin. Yhdistelmäruudulle voi ohjelmointivaiheessa määrittää Text-ominaisuuden oletusarvon. Ajon aikana se korvautuu valitun kohdan tekstillä. Locked: Yhdistelmäruudulla: jos arvo on True, tekstikenttää ei voi muokata. Listindex: Sisältää valitun luettelokohdan. Style: Jos luetteloruudun Style-arvo on 1 Checkbox, kunkin luettelokohdan vasemmalla puolella on valintaruutu. Näin käyttäjä voi valita useita luettelokohtia kerralla. Tällaisessa tapauksessa ListIndex-ominaisuus voi palauttaa muun kuin valitun kohdan. Tarkemmin luvussa 8. IntegralHeight: Katso luku 8. TopIndex: Palauttaa tai asettaa luettelon ylimmän jäsenen. Tarkemmin luvussa 8. Muut oliot: Tiedostoluettelo. Hakemistoluettelo ja Asemaluettelo. VIERITYSPALKIT Smallchance ja Largechange: Katso luku 8. Max ja Min: Hissin ääriasentoja vastaavat kokonaislukuarvot. Value: Ilmaisee hissin suhteellisen sijainnin. Jos esimerkiksi palkin Max-arvo on 100 ja Min-arvo 0, Value vaihtelee tällä välillä ja on 50 hissin ollessa täsmälleen puolessa välissä. Esimerkiksi seuraava koodi tuotti alla olevan kuvan:
3 Ominaisuudet 59 Private Sub HScroll1_Change() Label3.Caption = "Value: " & HScroll1.Value End Sub AJASTIN Interval: Arvo millisekunteina. ESIMERKKI Sijoita lomakkeeseen ajastin ja määritä Interval-arvoksi 5000. Kaksoisnapsauta ajastinta ja sijoita koodi-ikkunaan seuraava koodi: Sub Timer1_Timer () Print Taas kului 5 sekuntia. End Sub Paina F5-näppäintä ja odota hetki. HUOM Timer-funktio palauttaa keskiyöstä kuluneen ajan. TIEDOSTOJEN HALLINTA Path: Vain ajon aikana. Katso seuraava luku. KUVIO JA VIIVA BorderWidth, BorderStyle, BorderColor: Määrittävät kuvion rajojen ja koko viivan visuaaliset ominaisuudet. Viivalla, toisin kuin kuviolla, ei siis ole lainkaan BackColor-arvoa. Arvot näkyvät jo ohjelmointitilassa.
60 Visual Basic 5 -ohjelmoinnin peruskurssi DrawMode: Koska tämänkin ominaisuuden arvot näkyvät jo ohjelmointitilassa, voit helposti testata eri DrawMode-arvon vaikutuksia (vrt. esimerkkiohjelma Piirros.vbp, luku 11). FillColor ja Fillstyle: Vain kuviolla. FillStyle-arvo määrää kuinka olio täytetään FillColor-värillä. Tarkemmin luvussa GRAFIIKKA. Muut oliot: Lomake, Kuvakehys ja Printer. Shape: Vain kuviolla. Määrää kuvion tyypin. Ominaisuudella voi olla seuraavat arvot: 0 suorakulmio 1 neliö 2 ellipsi 3 ympyrä 4 pyöreäreunainen suorakulmio 5 pyöreäreunainen neliö BackStyle: Tämä ominaisuus on myös Otsikolla. Määrittää, onko kuvion tai otsikon tausta läpinäkyvä (0) vai läpinäkymätön (1, oletus) HUOM Kuvio ja viiva jäävät sekä ohjelmointi- että ajotilassa toisten ohjaimien (otsikkoa lukuunottamatta) taakse. OLE Class, OleTypeAllowed, Action: Määrittävät OLE-yhteyden tyypin, ja halutun toiminnon (ks. luku 18). DATA-OHJAIN DatabaseName ja RecordSource: Tietokantatiedoston ja taulukon nimet. Jos DatabaseName-arvon ilmoittava tiedosto on käytettävissä suunnitteluvaiheessa, voit valita RecordSource-arvon taulukkoluettelosta, jonka Visual Basic etsii puolestasi. Katso luku 16. TAULUKKO Cols, Rows: Pysty- ja vaakasarakkaiden määrä.
3 Ominaisuudet 61 FixedCols, FixedRows: Kiinteiden sarakkaiden määrät. Kiinteät sarakkeet eivät liiku taulukkoa vieritettäessä. Arvojen oltava vähintään yhtä pienemmät kuin vastaavien Cols- ja Rows-arvojen. Oletuksena on 1. GridLines: Määrää solujen rajaviivojen ulkonäön (0, näkymätön, 1 litteä, 2 upotettu ja 3 koholla). HighLight: Jos arvo on 1, valitut solut ovat korostettuja. Jos arvo on False, valittuja soluja ei korosteta. LeftCol, TopRow: Määrittävät ja palauttavat vasemmanpuoleisimman ja ylimmän ei-kiinteän sarakkeen ja rivin. Määrittämällä näitä ominaisuuksia voit vierittää taulukkoa koodin välityksellä. ColAlignment: Tällä ominaisuudella on seuraava syntaksi: [lomake].taulukko.colalignment(indeksi)[numero] Ominaisuus määrää tekstin asettumisen indeksin määrittämässä sarakkeessa. Numerolla voi olla seuraavat arvot: 0 teksti asettuu vasemmalle 1 teksti asettuu oikealle 2 teksti asettuu keskelle FixedAlignment: Määrää tekstin asettumisen sarakkeen kiinteillä soluilla. Sama syntaksi kuin ColAlignment-arvolla paitsi, että numerolla voi olla myös arvo 3 (käytetään sarakkeen ColAlignment-arvoa). ColWidth, RowHeight, Text: Valitun solun leveys, korkeus ja sisältö. Col, Row: Palauttavat ja asettavat aktiiviset sarakkeet. ESIMERKKI Kuva 5 on tuotettu seuraavalla koodilla: Private Sub Form_Load() For i% = 0 To MSFlexGrid1.Cols - 1 MSFlexGrid1.ColWidth(i%) = 250 MSFlexGrid1.Col = i%
62 Visual Basic 5 -ohjelmoinnin peruskurssi MSFlexGrid1.Row = 0 MSFlexGrid1.Text = Format(i%) Next For i% = 0 To MSFlexGrid1.Rows - 1 MSFlexGrid1.RowHeight(i%) = 250 MSFlexGrid1.Row = i% MSFlexGrid1.Col = 0 MSFlexGrid1.Text = Format(i%) Next End Sub VALINTAIKKUNA Action: Vrt. Edellinen luku. DATATAULUKKO DataSource: Kun tämän ominaisuuden arvoksi annetaan tietokantaan kytketty Data-ohjain, taulukon solut täyttyvät automaattisesti tietokantataulukon arvoilla. DATAYHDISTELMÄRUUTU RowSource ja Listfield: Näillä määritellään Data-ohjain ja sarake, jonka tiedot luettelossa esitetään. Valinnaiset DataSource ja DataField puolestaan määrittävät päivitettävän taulukon ja sarakkeen. DATALUETTELORUUTU Sama kuin edellä.
3 Ominaisuudet 63 OLETUSOMINAISUUDET Jokaisella oliolla on tietty ominaisuus, jonka voi koodissa jättää erikseen kirjoittamatta. Esimerkiksi seuraavat koodit ovat vaihdettavissa keskenään: Text1.Text = "Teksti" Text1 = "Teksti" Oletusominaisuuksien hyödyntäminen tekee koodista hieman nopeamman mutta myös vaikealukuisemman. Seuraavassa eri olioiden oletusominaisuudet: Valintaruutu Yhdistelmäruutu Komentopainike Hakemistoluettelo Asemaluettelo Tiedostoluettelo Kehys Taulukko Vierityspainikkeet Kuva Otsikko Viiva Luetteloruutu Valikko Valintapainike Kuvakehys Kuvio Tekstiruutu Ajastin Vakiovalintaikkuna Data-ohjain Data-yhdistelmäruutu Data-luetteloruutu Data-taulukko Value Text Value Path Drive FileName Caption Text Value Picture Caption Visible Text Enabled Value Picture Shape Text Enabled Action Caption Text Text Text
64 Visual Basic 5 -ohjelmoinnin peruskurssi