LUKU 5 METODIT Paitsi ominaisuuksia ja tapahtumia lomakkeeseen ja ohjaimiin sekä Visual Basicin erityisolioihin Printer, Screen, Clipboard, Debug ja App samoin kuin muihin Vb:ssä käytettäviin olioihin voi liittää metodeja. Metodin yleinen syntaksi ohjaimille on [Lomake.][Ohjain.]metodi [argumentit] Jokaiseen oliotyyppiin liittyy etukäteen määrätyt metodit. Jokaisella metodilla on etukäteen määrätyt argumentit (mikäli lainkaan). Seuraava aliohjelma, jossa käytetään kuvakehyksen Move-metodia, luo vaikutelman etääntyvästä kuvakehyksestä: Private Sub Picture1_Click () Dim i As Integer For i = 1 To 30 x = Picture1.left y = Picture1.top j = Picture1.width k = Picture1.height Picture1.Move x *.9, y *.9, j *.9, k *.9 Next i Kun olet kirjoittanut koodi-editoriin metodin nimen ja sanavälin, Visual Basic näyttää automaattisesti (kuva 1) pakolliset ja valinnaiset argumentit (valinnaiset hakasuluissa). Tämä edellyttää, että olet valinnut Tools - Options -ikkunan Editor-sivulla vaihtoehdon Auto Quick Info. Voit avata ohjeen myös komennolla Edit - Quick Info tai Edit - Parameter Info sekä Edit-työkalupalkin vastaavilla komennoilla. Tarkemmin Edit-valikosta luvussa 12.
82 Visual Basic 5 -ohjelmoinnin peruskurssi 4.3: Metodin argumentit Toisin kuin tapahtuma-aliohjelma, metodi voi myös palauttaa arvon funktion tapaan. Esimerkiksi seuraava aliohjelma kirjoittaa lomakkeelle merkkijonon ja sen alle samanpituisen viivan. Seuraavassa koodissa käytetään lomakkeen Line-, TextWidth- ja TextHeight-metodeja. Samoin kuin ominaisuuksien kohdalla lomake on mainittava vain, jos sen tai sen ohjaimen metodia kutsutaan toisesta lomakkeesta tai koodimoduulista. Alla "Line" voitaisiin siis korvata muodolla "Form1.Line" tai "TextWidth" muodolla "Form1.TextWidth". Private Sub Form_Click () Fontsize = 30 Print Merkkijono CurrentX = 0 CurrentY = TextHeight( M ) Line -(TextWidth( Merkkijono ), CurrentY) Metodit ovat siis aliohjelmia, samoin kuin edellisessä luvussa käsitellyt tapahtuma-aliohjelmat. Aliohjelmien yleisestä syntaksista ja funktioiden
5 Metodit 83 ja lauseiden eroista tarkemmin seuraavassa luvussa. Alla eri metodeja ryhmiteltynä käyttötavan mukaan. HUOM Oliokeskeisessä ohjelmoinnissa yleensä metodeja käytetään palauttamaan suojattuja tietoja omasta oliostaan tai suorittamaan sille jonkin toimenpiteen. Samoin yllä TextWidth palauttaa oman olionsa (jonka metodista on kyse) tekstin leveyden, eikä oliolla ole vastaavaa julkista ominaisuutta, jonka arvon voisi suoraan hakea tai asettaa. Näennäisesti eroa tuskin huomaa, mutta koska TextWidth ei ole ominaisuus, et voi kirjoittaa seuraavasti: Form1.TextWidth = 10 NÄKYVÄT OHJAIMET ZOrder: Tuo ohjaimen edustalle (argumentti = 0 tai jätetään pois) tai asettaa sen taustalle (argumentti = 1). Kaikkien näkyvien ohjaimien kanssa. Kun metodia sovelletaan lomakkeeseen, ikkuna pysyy myös toisten sovellusten päällä samaan tapaan kuin Windowsin Ohje, jos sen Aina päällimmäisenä -vaihtoehto on valittu. Vain samaan ZOrder-tasoon (katso luku 2) kuuluvia ohjaimia voi järjestää ZOrder-metodilla. Sijoita lomakkeelle kolmen komentopainikkeen ohjainmatriisi. Aseta painikkeet limittäin. Seuraavan koodin avulla napsautettu painike tulee edustalle. Private Sub Command1_Click (index As Integer) Command1(index).ZOrder Move: Siirtää lomaketta tai ohjainta ja muuttaa sen kokoa (katso luku 10). Metodia voi käyttää kaikkien näkyvien ohjaimien paitsi viivan kanssa. Move-metodin vaihtoehtona on asettaa ohjaimen Top- ja Left- sekä Width- ja Height-arvot suoraan. Refresh: Pakottaa lomakkeen tai ohjaimen välittömän päivytyksen (katso luku 10). Metodia voi käyttää samojen olioiden kanssa kuin ZOrder-metodia lukuunottamatta MDI-lomaketta.
84 Visual Basic 5 -ohjelmoinnin peruskurssi SetFocus: Asettaa fokuksen ohjaimelle. Samojen olioiden kanssa kuin ZOrder lukuunottamatta Kehystä, Otsikkoa, Kuviota, Viivaa ja Kuvaa. Drag: Kaikkien näkyvien ohjaimien kanssa lukuunottamatta Kuviota ja Viivaa. Metodilla voi olla seuraavat argumentit: 0 peruuttaa ohjaimen vetämisen 1 aloittaa ohjaimen vetämisen 2 päättää ohjaimen vetämisen ja pudottaa ohjaimen (Katso luku 10.) OLEDrag: Vastaa Drag-metodia, mutta soveltuu Ole-oliohin. Vrt. OLEDragMode-ominaisuus. ShowWhatsThis: Kaikkien näkyvien olioiden kanssa. Näyttää ohjetiedostosta aiheen, joka vastaa ominaisuuden WhatsThisHelpID arvoa. GRAAFISET METODIT Print: Lomakkeen ja kuvakehyksen sekä Printer- ja Debug-erikoisolioiden kanssa. Tulostaa merkkijonon (katso luku 9). Circle: Samojen ohjaimien kanssa kuin edellä lukuunottamatta Debug-oliota. Piirtää ympyrän (katso luku 10). Line: Samojen ohjaimien kanssa kuin edellä. Piirtää viivan (katso luku 10). PSet: Samojen ohjaimien kanssa kuin edellä. Asettaa lomakkeen, kuvakehyksen tai kirjoittimelle lähetettävän sivun pisteen argumentin väriseksi (katso luku 10). TextHeight: Samojen kuin edellä. Palauttaa merkkijonon korkeuden (katso luku 9). TextWidth: Samojen kuin edellä. Palauttaa merkkijonon leveyden (katso luku 9). Scale: Samojen kuin edellä. Määrittää lomakkeen, kuvakehyksen tai kirjoittimen koordinaatit (katso luku 10). Cls: Samojen kuin edellä lukuunottamatta Printer-oliota. Tyhjentää ajon aikana tuotetun grafiikan ja tekstin lomakkeesta tai kuvakehyksestä (katso luku 10). Point: Samojen kuin edellä. Palauttaa lomakkeen tai kuvakehyksen pisteen RGB-värin (katso luku 10).
5 Metodit 85 PaintPicture: Samojen kuin edellä. Tämän metodin avulla voit piirtää olion Picture-ominaisuuden sisällön toiseen olioon. Tarkemmin luvussa 10. Sijoita lomakkeelle kuvakehys, jonka AutoRedraw- ja AutoSize-arvot ovat True. Sijoita lisäksi ajastin ja anna sen Interval-arvoksi esimerkiksi 500. Seuraava koodi kääntää nyt puolen sekunnin välein kuvakehyksen kuvan pelikuvakseen. Private Sub Timer1_Timer() Picture1.PaintPicture Picture1.Picture, Picture1.ScaleWidth,_ Picture1.ScaleHeight, -1 * Picture1.ScaleWidth,_ -1 * Picture1.ScaleHeight Picture1.Picture = Picture1.Image Jos käytössäsi on grafiikkaohjelma, josta voi vetää leikatun kuvan ulos ja kuvakehyksen OLEDropMode-arvo on 2 Automatic, voit ajon aikana vetää kuvakehykseen minkä tahansa leikkaamasi kuvan ja se alkaa heti kääntyillä peilikuvakseen. PRINTER-OLION METODIT EndDoc: Päättää asiakirjan lähettämisen kirjoittimelle (katso luku 9). NewPage: Aloittaa uuden sivun kirjoittimelle lähetettävässä asiakirjassa (katso luku 9). KillDoc: Keskeyttää asiakirjan lähettämisen mahdollisimman pian. Jos asiakirja on Windowsin Tulostuksenhallinnassa, kirjoitin ei vastaanota mitään. LOMAKKEEN METODIT Edellä kuvattujen graafisten metodien lisäksi lomakkeella on seuraavat metodit: Hide: Lomakkeen ja MDI-komakkeen kanssa. Poistaa näkyvistä mutta ei muistista (katso luku 11). Show: Tuo lomakkeen ja MDI-lomakkeen näkyviin (katso luku 11). PopupMenu: Tuo näytölle irrallisen valikon. Tarkemmin luvussa 7.
86 Visual Basic 5 -ohjelmoinnin peruskurssi PrintForm: Ei MDI-lomakkeella. Lähettää kirjoittimelle lomakkeen bittikartan (katso luku 9). Arrange: Vain MDI-lomakkeella (ks. luku 15). LEIKEPÖYDÄN METODIT GetData, GetFormat, GetText, SetData, SetText, Clear: Näiden metodien avulla voit hakea tietoja leikepöydältä ja viedä niitä sinne. Tarkemmin luvussa 18. Edellistä PaintPicture-esimerkkiä voi täydentää seuraavalla koodilla, joka mahdollistaa kuvien siirtämisen leikepöydän kautta. Helpointa on sijoittaa koodi toiseen ajastimeen. Getformat tarkistaa, että leikepöydällä on bittikartta. Private Sub Timer2_Timer() If Clipboard.GetFormat(2) = True Then Picture1.Picture = Clipboard.GetData End If DDE-METODIT LinkExecute, LinkPoke, LinkRequest, LinkSend: Nämä liittyvät DDE-yhteyksiin, joita käsittelen Jatkokurssi-kirjassa. YHDISTELMÄRUUTU, LUETTELORUUTU JA TAULUKKO AddItem: Lisää kohdan (katso luku 8). RemoveItem: Poistaa kohdan (katso luku 8). Clear: Tyhjentää Yhdistelmä- tai Luetteloruudun. VALINTAIKKUNAN METODIT ShowOpen: Näyttää tiedostonavausikkunan. Vaikutus on sama kuin Action-ominaisuuden asettaminen arvoon 1.
5 Metodit 87 ShowSave: Näyttää tallennusikkunan. Vastaava Action-ominaisuuden arvo on 2. ShowColor: Näyttää värinvalintaikkunan. Vastaava Action-ominaisuuden arvo on 3. ShowFont: Näyttää fontinvalintaikkunan. Vastaava Action-ominaisuuden arvo on 4. ShowPrinter: Näyttää kirjoittimen valintaikkunan. Vastaava Actionominaisuuden arvo on 5. ShowHelp: Näyttää Ohjeen. Vastaava Action-arvo on 6. AboutBox: Näyttää Valintaikkuna-ohjaimen oman Tietoja-ikkunan. Vastaava metodi on eräillä muillakin ActiveX-metodeilla. KOKOELMIEN METODIT Add: Lisää kokoelmaan jäsenen. Remove: Poistaa kokoelman jäsenen. Metodin syntaksi on Kokoelma.Remove(jäsen), missä jäsen on jäsenen Index- tai Key-arvo. Käsittelen kokoelmia tarkemmin Jatkokurssi-kirjassa. OLIOLUOKKIEN OMAT METODIT Voit luoda olioluokkaan metodeja määrittämällä niissä aliohjelmia Public-avainsanalla (tarkemmin Jatkokurssi-kirjassa). Kuten todettu, tyypillisesti metodien tarkoituksena on palauttaa tai asettaa olion muuten Private-avainsanalla suojattuja ominaisuuksia. Näin olio hallitsee "itse" omia ominaisuuksiaan.
88 Visual Basic 5 -ohjelmoinnin peruskurssi